openvpn 如何决定从哪个接口获取 IP 地址

openvpn 如何决定从哪个接口获取 IP 地址

两端都使用 ubuntu 10.04。

我们有一台客户端和一台服务器机器在同一个网络上尝试建立 VPN 连接。我们使用来自这里并做了最小的改动。

服务器和客户端启动后似乎连接顺利。服务器如下所示:

Wed Feb 23 22:13:22 2011 MULTI: multi_create_instance called
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 Re-using SSL/TLS context
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 LZO compression initialized
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 Control Channel MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 Data Channel MTU parms [ L:1574 D:1450 EF:42 EB:135 ET:32 EL:0 AF:3/1 ]
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 Local Options hash (VER=V4): 'f7df56b8'
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 Expected Remote Options hash (VER=V4): 'd79ca330'
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 TLS: Initial packet from 192.168.1.55:47166, sid=69112e42 5458135b
*...*
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Wed Feb 23 22:13:22 2011 192.168.1.55:47166 [client1] Peer Connection Initiated with 192.168.1.55:47166

在客户端,连接如下所示:

Wed Feb 23 22:20:07 2011 [server] Peer Connection Initiated with [AF_INET]192.168.1.41:1194
Wed Feb 23 22:20:10 2011 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Feb 23 22:20:10 2011 PUSH: Received control message: 'PUSH_REPLY,route-gateway 10.8.0.4,ping 10,ping-restart 120,ifconfig 10.8.0.50 255.255.255.0'
...
Wed Feb 23 22:20:10 2011 /sbin/ifconfig tap0 10.8.0.50 netmask 255.255.255.0 mtu 1500 broadcast 10.8.0.255
Wed Feb 23 22:20:10 2011 Initialization Sequence Completed

openvpn 服务器已配置为分配 10.8.0.* 范围内的 IP 地址,客户端已分配 10.8.0.50。当我从客户端运行以下 nmap 时:

Starting Nmap 5.00 ( http://nmap.org ) at 2011-02-23 22:04 EST
Host 10.8.0.50 is up (0.00047s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 30.34 seconds

Host 192.168.1.1 is up (0.0025s latency).
Host 192.168.1.18 is up (0.074s latency).
Host 192.168.1.41 is up (0.0024s latency).
Host 192.168.1.55 is up (0.00018s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 6.33 seconds

如果我从 10.8.0.* 上的服务器运行 nmap,则什么也得不到。

如果客户端有两个接口(无线和 Tap 设备),当您查找某个 IP 地址时,它如何决定连接哪个接口?

编辑我正在尝试设置 VPN,以便从远程网络连接到我的家庭网络。似乎 OpenVPN 正在连接,但即使在连接“建立”后,我的家庭网络上的任何计算机都没有显示为网络机器。客户端和服务器配置文件的精简版本发布如下。感谢您提供的任何帮助。

服务器配置文件

port 1194
proto udp
dev tap
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt  
key /etc/openvpn/easy-rsa/keys/server.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

客户端配置文件

client
dev tap
dev-node tap0901
proto udp
remote ********** 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

另一件可能有帮助的事情是,我尝试使用适用于 Windows 的 openvpn gui 进行连接,但连接在“获取配置”时停滞,并且栏只是永远滚动。

答案1

您使用的是哪个版本的 OpenVPN?

客户端能否互相 ping 通(使用其 VPN 地址)?它们能否 ping 通服务器?服务器能否 ping 通客户端?您还可以使用 traceroute 查看连接中断的位置。

(应该是一条评论,主持人可以更改吗?)

答案2

如果客户端有多个接口,它会根据路由表决定将数据包路由到何处。

route -n在命令行上运行。你会看到路由表,例如:

matt@watch:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.161.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.161.0   192.168.161.2   255.255.255.0   UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth3
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth3
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth3

您可以看到 192.168.161.0/24 子网在 tun0 上,这是 openvpn 连接。eth3 是子网为 192.168.1.0/24 的 LAN 连接

我不太清楚你在这里遇到了什么问题 - 你能否包括 openvpn 配置以及你想要实现的结果?

相关内容