一位客户最近更改了他们的 VPN 服务器,现在推荐 ShrewSoft 作为合适的客户端。
在 Windows 上,提供的配置有效。在 Linux 上,它还出现连接并设置tap0
网络适配器,将设备连接到正确的网络。但是,我似乎根本无法传输任何流量。
客户说:
Oct 16 11:24:42 vpn-lbe ikec[10887]: >> : esp proposal configured
Oct 16 11:24:42 vpn-lbe ikec[10887]: >> : client configured
Oct 16 11:24:42 vpn-lbe ikec[10887]: >> : local id configured
Oct 16 11:24:42 vpn-lbe ikec[10887]: >> : remote id configured
Oct 16 11:24:42 vpn-lbe ikec[10887]: >> : pre-shared key configured
Oct 16 11:24:42 vpn-lbe ikec[10887]: ii : bringing up tunnel ...
Oct 16 11:24:42 vpn-lbe ikec[10887]: >> : network device configured
Oct 16 11:24:42 vpn-lbe ikec[10887]: ii : tunnel enabled
它还设置了一个tap0
接口,具有 IP 地址并在正确的网络中广播:
tap0: flags=67<UP,BROADCAST,RUNNING> mtu 1380
inet 192.168.5.213 netmask 255.255.255.0 broadcast 192.168.5.255
inet6 fe80::f09b:eaff:feb1:8548 prefixlen 64 scopeid 0x20<link>
ether f2:9b:ea:b1:85:48 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
(请注意,这没有显示任何数据包。)
这似乎是一个普遍存在的问题,没有明确的解决办法。例如,这个 ServerFault 问题提到禁用rp_filter
, 所以我做了:
$ sysctl -a | grep -i rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
这似乎表明需要在 ShrewSoft 代码库中进行一些更改,以使其与较新的 Linux 版本兼容。对吗?是否有人尝试过分叉它和/或是否有替代的 IPSec 客户端?