情况:
我有一个连接到 OpenVPN 网络的服务器和一个客户端。两者都分配了虚拟 IP 地址 -10.10.1.6
用于服务器和10.10.1.14
客户端。服务器开始监听端口8090
。客户端连接服务器并绑定到端口4444
。从服务器的角度来看,我希望源 IP 和源端口为10.10.1.14:4444
,但事实并非如此10.10.1.1:4444
。
更大的图景:
有一个 IOT 设备 (RPi3) 和一个连接到 VPN 的服务器。服务器需要能够寻址 IOT 设备(这是既定事实),因此 IOT 设备会定期“ping”服务器,以便跟踪它们的地址(类似于 lwm2m 注册机制)。
附加信息:
pi@raspberrypi:~/ $ ip addr
...
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.10.1.14 peer 10.10.1.13/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 ... /64 scope link flags 800
valid_lft forever preferred_lft forever
>>> ip addr # server
...
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 10.10.1.6 peer 10.10.1.5/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 ... /64 scope link stable-privacy
valid_lft forever preferred_lft forever
测试源地址
pi@raspberrypi:~/ $ echo "hello" | ncat -p 4444 10.10.1.6 8090
-----------------------------------------------------------------------
>>> ncat -vvv -l -p 8090 # server
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::8090
Ncat: Listening on 0.0.0.0:8090
...
Ncat: Connection from 10.10.1.1.
...
Ncat: Connection from 10.10.1.1:4444.
...
hello
...
我有与以下相同的 OpenVPN 配置https://www.howtoforge.com/tutorial/how-to-install-openvpn-server-and-client-with-easy-rsa-3-on-centos-7/第 4 步 - 配置 OpenVPN
话虽如此,我如何“强制”OpenVPN 向我传递“真实”虚拟源地址?我是初学者,所以请耐心等待。
编辑:
我尝试ncat
在同一台机器上运行客户端和监听器进行测试,因此具有相同的虚拟 IP 地址,并且一切正常。