我正在尝试设置 OpenVPN 服务器。这是网络:电缆调制解调器、TP-Link 路由器,带有 OpenWrt Chaos Calmer 15.05.1 / LuCI 15.05-149-g0d8bbd2 版本 (git-15.363.78009-956be55) 192.168.15.1 路由器 192.168.15.20 PC 带有 DHCP 静态租约 Ubuntu Mate 16.04 Xenial x64 这是我的主要计算机,带有正常工作的 samba 共享 192.168.15.22 虚拟机 Windows 7 Pro SP1 x86 带有 DHCP 静态租约 192.168.15.254 虚拟机 ubuntu 服务器静态 IP 地址
我在本教程的帮助下在 ubuntu 服务器 (.15.254) 上安装并配置了 OpenVRT: https://help.ubuntu.com/community/OpenVPN#Configuring_the_Server
我在路由器 TCP、UDP 上打开端口 1194,并进行了测试并且可以正常工作,我安装了 ddclient 并带有免费 DNS 进行测试并且可以正常工作,我没有任何 iptables 规则,清空了所有 3 个链。
我可以从本地网络的 win7 虚拟机使用 OpenVPN GUI 连接到服务器。一切正常,可以 ping 其他机器,连接到 PC 上的 samba (.15.20)
在 LAN 之外,使用 win7 PC 和 OpenVPN GUI,我可以连接到服务器,获得正确的 IP 地址 192.168.15.225,可以 ping 服务器 192.168.15.254,可以从服务器 ping 客户端,仅此而已,我无法执行任何其他操作。我无法 ping 其他机器 192.168.15.1(路由器)192.168.15.20(主机),无法访问 samba 共享,在网络浏览下看不到其他机器。
问题是什么以及为什么不能正常工作:
在配置文件下:interfaces、down.sh、up.sh、server.conf、client.ovpn:
在 /etc/网络/接口:
auto lo br0
iface lo inet loopback
iface br0 inet static
address 192.168.15.254
netmask 255.255.255.0
gateway 192.168.15.1
broadcast 192.168.15.255
dns-nameservers 192.168.15.1 8.8.8.8
bridge_ports eth0
iface eth0 inet manual
up ip link set $IFACE up promisc on
down ip link set $IFACE down promisc off
#virtualbox virtualis gep miatt kell az alabbi 4
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
/etc/openvpn/down.sh:
#!/bin/sh
BR=$1
DEV=$2
/sbin/brctl delif $BR $DEV
/sbin/ip link set "$DEV" down
/etc/openvpn/up.sh:
#!/bin/sh
BR=$1
DEV=$2
MTU=$3
/sbin/ip link set "$DEV" up promisc on mtu "$MTU"
/sbin/brctl addif $BR $DEV
/etc/openvpn/server.conf:
mode server
tls-server
local 192.168.15.254 ## ip/hostname of server
port 1194 ## default openvpn port
proto udp
#bridging directive
dev tap0
script-security 2 ## allow calling up.sh down.sh
up "/etc/openvpn/up.sh br0 tap0 1500"
down "/etc/openvpn/down.sh br0 tap0"
persist-key
persist-tun
#certificates and encryption
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
cipher BF-CBC
comp-lzo
#DHCP Information
ifconfig-pool-persist ipp.txt
server-bridge 192.168.15.254 255.255.255.0 192.168.15.225 192.168.15.235
push "dhcp-option DNS 192.168.15.1"
push "route 192.168.15.1 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
max-clients 10
#log and security
user nobody
group nogroup
keepalive 10 120
status openvpn-status.log
verb 3
客户端.ovpn:
### Client configuration file for OpenVPN
# Specify that this is a client
client
# Bridge device setting
dev tap
# Host name and port for the server (default port is 1194)
# note: replace with the correct values your server set up
remote ***server url*** 1194
proto udp
# Client does not need to bind to a specific local port
nobind
# Keep trying to resolve the host name of OpenVPN server.
## The windows GUI seems to dislike the following rule.
##You may need to comment it out.
resolv-retry infinite
# Preserve state across restarts
persist-key
persist-tun
# SSL/TLS parameters - files created previously
ca ca.crt
cert pisti.crt
key pisti.key
# Since we specified the tls-auth for server, we need it for the client
# note: 0 = server, 1 = client
tls-auth ta.key 1
# Specify same cipher as server
cipher BF-CBC
# Use compression
comp-lzo
# Log verbosity (to help if there are problems)
verb 3
答案1
我继续搜索,终于找到了解决方案。问题在于 VPN 服务器是虚拟机,而 VirtualBox 设置未设置为混杂模式。我更改了设置:设置 -> 网络 -> 高级设置 -> 将混杂模式设置为“全部允许”。我这样做之后,一切都开始正常工作。问题解决了。