继升级dbus/systemd导致网络设备名称改变无法连接网络后,虽然解决了网络连接问题,但是vpn却挂了。
vpn(pptp和用strongswan实现的ipsec)仍然是能连接的,只是设备无法上网。之前以为是dns设置问题,但是发现直接使用ip也无法访问网站,经确认iptables规则正确后,想应该是ip转发出现问题。
原本开启ip转发是修改/etc/sysctl.conf
文件,然而从systemd/219
开始,当使用systemd-networkd
来配置网络时,sysctl.conf
中的设置已经不被systemd所接受并用于控制各网络设备的ip转发。所以其实这时ip转发是被关闭的,这也就导致了连接vpn的设备无法上网。如果要打开ip转发,必须修改/etc/systemd/network/
中用来设置网络的配置文件。(参考)
因此修改/etc/systemd/network/
目录下,vpn连接用到的网络设备所对应的配置文件,在[network]
一节中添加
[Network]
IPForward=ipv4
IPMasquerade=yes
开启ip转发后,vpn恢复正常。当然,iptables中的规则需要做相应的调整,修改网络设备的新名称。