OpenVPN 服务器无法正常工作:无法接收从 LAN 设备到隧道客户端的大多数数据包

OpenVPN 服务器无法正常工作:无法接收从 LAN 设备到隧道客户端的大多数数据包

为了从互联网登录到我家用路由器上运行的 SIP 服务器(192.168.1.1),由于多种原因,该服务器只能从我的 LAN 内访问,有人向我建议设置路由的 OpenVPN 服务器。

通过这种方式,理论上我可以欺骗我的路由器,让它认为来自远程设备(即通过 Android 客户端应用程序的手机)的流量来自我自己的 OpenVPN 服务器。由于服务器将在连接到我的 LAN 的 PC 上运行(在我的情况下是192.168.1.3),这可以有效地让我从手机登录到 SIP 服务器。

我在 Linux Mint(Ubuntu)台式电脑上安装了 OpenVPN:

$ uname -a
Linux lorenzo-desktop 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

并按照官方的操作指南和我在其他地方找到的一些信息,我得到了这个server.conf文件(仅显示相关部分):

port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
persist-key
persist-tun
topology subnet

另一位用户建议我(马里乌斯·马图蒂亚)添加以下内容iptables规则:

sudo iptables -t nat -A POSTROUTING -o eth0 ! -d 10.8.0.0/24 -j MASQUERADE 

我还在托管服务器的 PC 上启用了 IP 转发,并在家用路由器上正确设置了端口转发。这样做之后,服务器应该可以正常工作,但事实却发生了以下情况:

  • 我可以登录到正在运行的 OpenVPN 服务器192.168.1.3,它会为我的远程客户端分配 IP 10.8.0.6
  • 我可以 ping 通我的 LAN 上的任何设备,其中包括192.168.1.1运行 SIP 服务器的调制解调器/路由器;
  • 我可以成功登录到 SIP 服务器(所以我想象我的手机和路由器之间一定存在某种握手);
  • 我可以通过手机呼叫连接到 SIP 服务器的其他设备,它们也可以听到我的声音,但是我听不到他们应该发出的声音

这是的输出ip route show

default via 192.168.1.1 dev eth0  proto static 
10.8.0.0/24 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.3  metric 1 

来自ip link show dev tun0

3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none

最后,您可以在这里找到tcpdump -i eth0以及来自tcpdump -i tun0

我的问题:谁能猜出哪里出了问题?缺少软件包?服务器配置不正确?缺少iptables条目?

编辑#1:

不幸的是我无法为我的路由器添加路由;如果它有用的话,它的型号是 Technicolor AG Plus。它没有太多的黑客空间,你知道,我很幸运它支持 DDNS。

这是唯一活跃的iptables托管 OpenVPN 服务器的 PC 上的规则:

# iptables -vL -t nat
[...]
Chain POSTROUTING (policy ACCEPT 25 packets, 1672 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   61  3949 MASQUERADE  all  --  any    eth0    anywhere            !10.8.0.0/24

网络配置回顾

  • [ 192.168.1.1]是我 ISP 提供的调制解调器/路由器,用于连接互联网;这是一个相当简陋的设备,无法设置路由,也没有 VPN 功能。它运行SIP 服务器我想要連接。
  • [ 192.168.1.2]是我用作网络扩展器的路由器。它的设置方式使其对通过它的流量完全透明。到目前为止,我没有遇到任何问题,我真的不认为它对我的问题有任何影响。许多 SIP 客户端通过它连接,并且可以成功拨打和接听电话。
  • [ 192.168.1.3]是一台运行 Linux Mint 的 PC,通过以太网电缆连接到192.168.1.2,运行OpenVPN 服务器。在VPN中,其地址是[ 10.8.0.1]。我的家用路由器 ( 192.168.1.1) 将端口 1194 上的传入流量转发到该设备。
  • 我的智能手机使用 3G 蜂窝网络连接到互联网。它可以连接到 OpenVPN 服务器并获取地址,例如[ 10.8.0.6]。它可以登录到正在运行的 SIP 服务器,192.168.1.1但我有单向音频,从智能手机到目标 SIP 设备。

相关内容