OpenVPN 没有向互联网发送流量?

OpenVPN 没有向互联网发送流量?

我在 pi 上设置了 openvpn,但遇到了一个小问题。我可以连接到 VPN 服务器并正常 ping 通它,也可以连接到本地网络上的其他机器。但是,当连接到 VPN 时,我无法访问外部世界(通过名称查找或 IP)。

详细信息如下:

在服务器上的tun0接口:

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.1  netmask 255.255.255.255  destination 10.8.0.2
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        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

我可以 ping 通它:

# ping -c 3 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.159 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=0.155 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=0.156 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms

路由表

# ip route show
default via 192.168.1.1 dev eth0  metric 204 
10.8.0.0/24 via 10.8.0.2 dev tun0 
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.6  metric 204 

我也有 IP 流量转发:

net.ipv4.ip_forward = 1

我没有任何自定义 iptables 规则(据我所知)。

在客户端上,我可以连接到 VPN。这是我的 tun0:

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.6  netmask 255.255.255.255  destination 10.8.0.5
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 1527 (1.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在客户端上我可以 ping 它:

sudo ping -c 3 10.8.0.6
PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
64 bytes from 10.8.0.6: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from 10.8.0.6: icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from 10.8.0.6: icmp_seq=3 ttl=64 time=0.032 ms

--- 10.8.0.6 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.026/0.031/0.035/0.003 ms

我可以从客户端 ssh 到我的 LAN(192.168.1.x)上的另一台服务器,但是我无法访问 LAN 之外的任何东西。

以下是此要点底部的一些服务器日志:https://gist.github.com/coleifer/6ef95c3008f130249933/edit

说实话,我没主意了!我不认为是我的客户端出了问题,因为我的笔记本电脑和手机(有 openvpn 客户端)都表现出同样的行为。

在使用 debian 之前,我已经在这个 pi 上安装了 OpenVPN,并且它可以工作,所以我不认为这是我的路由器,但当然一切皆有可能。

答案1

我通过添加两个 iptables 规则解决了这个问题:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -a FORWARD -i tun0 -j ACCEPT

相关内容