我有一个在 Ubuntu 16.04.1 上运行的 OpenVPN 服务器。我已将其设置为 TAP/桥接服务器,并将桥接配置添加到我的/etc/network/interfaces
文件中。我的客户端是一台 Windows 10 笔记本电脑。
我的客户端可以毫无问题地连接到服务器,并且可以使用其本地 IP 地址访问远程网络上的路由器 Web 界面。我还使用 Wireshark 监控了客户端上的 TAP 接口,可以看到从远程网络上的其他主机路由的广播消息。但是,我无法 ping 或启动与这些主机的任何形式的网络通信,包括服务器本身。此外,服务器无法使用分配的 IP ping 客户端。
我完全不知所措,不知道为什么我的客户端可以与路由器通信并使用其互联网连接,但我对网络上的所有其他设备来说却是不可见的。我错过了什么?
非常感谢您的帮助。
配置:
远程网络
subnet = 192.168.100.0/24
router ip = 192.168.100.1
router dhcp range = 192.168.100.100 - 192.168.100.199
OpenVPN server ip = 192.168.100.10
服务器
/etc/网络/接口
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.100.10
netmask 255.255.255.0
gateway 192.168.100.1
network 192.168.100.0
dns-nameservers 8.8.8.8 8.8.4.4
bridge_ports enp3s0
iface enp3s0 inet manual
up ip link set $IFACE up promisc on
down ifconfig $IFACE down
/etc/openvpn/server.conf
port 1194
proto tcp
dev tap0
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
topology subnet
server-bridge 192.168.100.1 255.255.255.0 192.168.100.200 192.168.100.210
push "route 192.168.100.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
;log openvpn.log
log-append openvpn.log
verb 6
up "/etc/openvpn/up.sh br0 enp3s0"
script-security 3
/etc/openvpn/up.sh
#!/bin/sh
BR=$1
ETHDEV=$2
TAPDEV=$3
/sbin/ip link set "$TAPDEV" up
/sbin/ip link set "$ETHDEV" promisc on
/sbin/brctl addif $BR $TAPDEV
/etc/sysctl.conf
net.ipv4.ip_forward=1
iptables --列表
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-sshd (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
客户
C:\Program Files\OpenVPN\config\client.ovpn
dev tap
proto tcp
remote my-public-ip-address 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
comp-lzo
verb 3
Ping 结果
# Remote router
ping 192.168.100.1
Pinging 192.168.100.1 with 32 bytes of data:
Reply from 192.168.100.1: bytes=32 time=108ms TTL=64
Reply from 192.168.100.1: bytes=32 time=32ms TTL=64
# OpenVPN Server
ping 192.168.100.10
Pinging 192.168.100.10 with 32 bytes of data:
Reply from 192.168.100.200: Destination host unreachable.
答案1
嗯,我觉得很傻。server.conf
结果
服务器桥 192.168.100.1 255.255.255.0 192.168.100.200 192.168.100.210
应该读
服务器桥接 192.168.100。10255.255.255.0 192.168.100.200 192.168.100.210
即第一个参数是服务器 IP 地址,而不是我所拥有的网关地址。