如何诊断/修复 OpenVPN 设置在 LAN 内部有效但在路由器的 WAN 端无效

如何诊断/修复 OpenVPN 设置在 LAN 内部有效但在路由器的 WAN 端无效

我工作的公司已决定使用 OpenVPN 来取代大量使用 ssh (替代大量使用 ssh 的合适 VPN

我尝试设置 OpenVPN 以进行桥接连接。我可以通过与 VPN 服务器位于同一网络上的机器进行连接。不幸的是,我无法从 LAN 外部连接到 VPN 服务器;来自 WAN 端口的连接失败并显示WSAETIMEDOUT错误消息。

我正在将路由器上的端口 1194(用于 tcp 和 udp)转发到端口 1194 上的 OpenVPN 服务器。

是否有任何工具可以帮助我(例如 Netcat)等隔离问题并排除设置故障?

配置详细信息

Ubuntu 10.04 LTS OpenVPN“服务器”私人局域网 192.168.10.0/24

客户端:大多数是 Windows XP / Vista / Windows 7 机器。

/etc/网络/接口

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
    address 192.168.10.95
    network 192.168.10.0
    netmask 255.255.255.0
    broadcast 192.168.10.255
    gateway 192.168.10.1
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

auto eth0
iface eth0 inet dhcp

/etc/openvpn/server.conf

port 1194
dev tap0
up "/etc/openvpn/up.sh br0"
down "/etc/openvpn/down.sh br0"

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

server-bridge 192.168.10.95 255.255.255.0 192.168.10.50 192.168.10.80
tls-auth ta.key 0
user nobody
group nogroup

client-to-client
duplicate-cn
keepalive 10 120

cipher BF-CBC        # Blowfish (default)
comp-lzo

persist-key
persist-tun

status openvpn-status.log
verb 6
mute 20

上传文件 /bin/sh #!/bin/sh 复制代码

BR=$1
DEV=$2
MTU=$3
/sbin/ifconfig $DEV mtu $MTU promisc up
/usr/sbin/brctl addif $BR $DEV

下载 /bin/sh #!/bin/sh 复制代码

BR=$1
DEV=$2

/usr/sbin/brctl delif $BR $DEV
/sbin/ifconfig $DEV down

客户端.ovpn

client
dev tap
remote 192.168.10.184:1194
ca ca.crt
cert maven-lunch.crt
key maven-lunch.key
tls-auth ta.key 1

ping 10
comp-lzo
verb 6
mute 10

**编辑于 2010 年 9 月 20 日 18:00 EDT (@Zoredache) **

我正在使用 wan 地址(在本例中为 10.1.2.129)。

我看到来自我的测试客户端 (10.1.10.112) 的连接尝试

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
17:52:23.256396 IP 10.1.10.112.1638 > 192.168.10.184.1194: tcp 0
17:52:23.256415 IP 10.1.10.112.1638 > 192.168.10.184.1194: tcp 0

查看系统日志显示本地网络上断开的测试客户端的连接已中断:

尾部-f / var / log / syslog

Sep 20 16:40:07 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 TUN WRITE [92]
Sep 20 16:40:07 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 TCPv4_SERVER WRITE [133] to [AF_INET]192.168.10.189:1754: P_DATA_V1 kid=0 DATA len=132
Sep 20 16:40:07 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 TCPv4_SERVER WRITE [181] to [AF_INET]192.168.10.189:1754: P_DATA_V1 kid=0 DATA len=180
Sep 20 16:40:08 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 TCPv4_SERVER READ [133] from [AF_INET]192.168.10.189:1754: P_DATA_V1 kid=0 DATA len=132
Sep 20 16:40:08 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 TUN WRITE [92]
Sep 20 16:40:08 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 TCPv4_SERVER WRITE [133] to [AF_INET]192.168.10.189:1754: P_DATA_V1 kid=0 DATA len=132
Sep 20 16:40:08 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 Connection reset, restarting [-1]
Sep 20 16:40:08 MavenVPNBox ovpn-server[1369]: maven-lunch/192.168.10.189:1754 SIGUSR1[soft,connection-reset] received, client-instance restarting
Sep 20 16:40:08 MavenVPNBox ovpn-server[1369]: TCP/UDP: Closing socket

答案1

您已将您的改为client.ovpn使用 WAN 地址,而不是192.168.10.184对吗?

无论如何,至于测试。在您的服务器上,为什么不直接对 udp/1194 执行 tcpdump 呢?tcpdump -qni any port 1194看看是否有任何连接尝试真正从外部到达服务器。如果没有,则说明您的防火墙或边界设备上的 NAT 设置存在问题。

还要检查 /var/log/syslog。通常,当客户端尝试连接时,openvpn 日志条目会出现在那里。

相关内容