我最近在 Windows 2003 服务器上安装了 OpenVPN。一旦有人连接到服务器,他们就无法访问互联网。
- 我的网络是 192.168.1.1
- 我的服务器是 192.168.1.110
- 我正在使用 dd-wrt 固件
- 我已在路由器上为 192.168.1.110 启用了端口 1194
- 路由和远程访问已禁用
- 我的 Windows 2003 服务器上有 2 个 Tap-Win32 Adapter V8
- 我尝试将此行设置为 192.168.1.1,并且我的 ISP 的 DNS 服务器推送“dhcp-option DNS 192.168.1.1”# 将 Xs 替换为你的家庭网络的 DNS 的 IP 地址(通常是你的 ISP 的 DNS)
我在 dd-wrt 中创建了一个高级路由网关
Destination LAN NET: 192.168.10.0 Subnet Mask: 255.255.255.252 Gateway: 192.168.1.110 Interface: Lan & WLAN
我严格遵循了这个网站: http://www.itsatechworld.com/2006/01/29/how-to-configure-openvpn/
编辑:我刚刚尝试通过 cmd 提示符连接并收到以下子网错误 - 本地 LAN [192.168.1.0/255.255.255.0] 和远程 VPN [192.168.1.0/255.255.255.0] 之间潜在的路由子网冲突
我的服务器文件如下所示:
local 192.168.1.110 # This is the IP address of the real network interface on the server connected to the router
port 1194 # This is the port OpenVPN is running on - make sure the router is port forwarding this port to the above IP
proto udp # UDP tends to perform better than TCP for VPN
mssfix 1400 # This setting fixed problems I was having with apps like Remote Desktop
push "dhcp-option DNS 192.168.1.1" # Replace the Xs with the IP address of the DNS for your home network (usually your ISP's DNS)
#push "dhcp-option DNS X.X.X.X" # A second DNS server if you have one
dev tap
#dev-node MyTAP #If you renamed your TAP interface or have more than one TAP interface then remove the # at the beginning and change "MyTAP" to its name
ca "ca.crt"
cert "server.crt"
key "server.key" # This file should be kept secret
dh "dh1024.pem"
server 192.168.10.0 255.255.255.128 # This assigns the virtual IP address and subent to the server's OpenVPN connection. Make sure the Routing Table entry matches this.
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1" # This will force the clients to use the home network's internet connection
keepalive 10 120
cipher BF-CBC # Blowfish (default) encryption
comp-lzo
max-clients 100 # Assign the maximum number of clients here
persist-key
persist-tun
status openvpn-status.log
verb 1 # This sets how detailed the log file will be. 0 causes problems and higher numbers can give you more detail for troubleshooting
我的client1文件如下:
client
dev tap
#dev-node MyTAP #If you renamed your TAP interface or have more than one TAP interface then remove the # at the beginning and change "MyTAP" to its name
proto udp
remote my-dyna-dns.com 1194 #You will need to enter you dyndns account or static IP address here. The number following it is the port you set in the server's config
route 192.168.1.0 255.255.255.0 vpn_gateway 3 #This it the IP address scheme and subnet of your normal network your server is on. Your router would usually be 192.168.1.1
resolv-retry infinite
nobind
persist-key
persist-tun
ca "ca.crt"
cert "client1.crt" # Change the next two lines to match the files in the keys directory. This should be be different for each client.
key "client1.key" # This file should be kept secret
ns-cert-type server
cipher BF-CBC # Blowfish (default) encrytion
comp-lzo
verb 1
提前致谢!
答案1
在我看来,服务器正在将“redirect-gateway”选项推送到客户端。这会导致客户端使用 VPN 作为其默认网关。注释掉服务器配置中的“push “redirect-gateway def1””行。
哇哦——我刚看到你的编辑。你的客户端不能使用与它连接的 LAN 相同的 IP 地址。这样不行。一端或另一端需要使用不同的 IP 地址。
编辑:
假设您的 Windows Server 2003 计算机上的路由配置正确(根据您引用的 www.itsatechworld.com 页面),您应该能够通过 VPN 通过其 LAN IP 对 Windows Server 2003 计算机和 Windows Vista 计算机进行 PING。如果可以,则说明您在 Windows Server 2003 和 DD-WRT 计算机上的路由正确,您可以继续。如果不行,那么您需要开始追踪以下原因:(1) 来自 OpenVPN 隧道的 PING 流量未到达目的地,或者 (b) 来自目的地主机的 PING 回复未返回。您可能最终会在 Windows Vista 计算机上安装类似 Wireshark 的程序,以查看 PING 请求是否到达目的地(因为 PING 无法告诉您是否已收到请求,而回复是否已丢失)。
一旦 VPN 上的 IP 连接工作正常,我建议在 Windows Server 2003 VPN 服务器计算机上安装 DNS 和 WINS 服务,并配置服务器计算机和 Windows Vista 家庭计算机以使用该计算机进行 WINS 和 DNS。您可以在 Windows Server 2003 计算机上将 ISP 的 DNS 添加为“转发”,也可以保留配置为允许其解析 Internet 名称的常规“根提示”。在您的 OpenVPN 服务器配置中,在“push "dhcp-option DNS 192.168.1.1"”行后立即添加以下行:
push "dhcp-option WINS 192.168.1.1"
这将使远程客户端接入 Windows Server 2003 计算机上的 WINS 和 DNS 服务器,并获得 DNS 和 NetBIOS 名称解析。
如果您在家中没有使用 Active Directory 域,则可能需要在 Windows Server 2003 DNS 服务器上设置一个标准正向查找区域,以便您的 Windows Server 2003 和 Windows Vista 计算机注册到该区域。创建此区域时,您需要授予客户端动态更新记录(尽管不安全)的权限。您应该将选项“DNS 域名”(选项 15)添加到家中的 DHCP 范围,以便您的客户端计算机选择正确的 DNS 域名后缀。(如果您使用 DD-WRT 进行 DNS,那么我无法告诉您如何执行此操作。我是 OpenWRT 的粉丝,我从命令行管理我的 WRT54G。无论如何,我建议从 Windows Server 2003 机器运行 DHCP,但我更喜欢那个 DHCP 服务器。)
如果您使用的是 Active Directory 域,那么您已经在 DNS 中创建了正向查找区域。但是,由于您的远程 VPN 客户端不是您域的成员,因此它们将无法在 Windows Server 在 DNS 区域上设置的常规安全设置下在 DNS 中注册(至少,如果您让它在 DCPROMO 期间创建区域)。这是不安全的,但如果您想允许它们注册,您可以(a - 不太安全)更改区域的权限以允许不安全的注册,或者(b - 更安全但仍然不安全)为它们创建 A 和 PTR 记录并修改每个记录的权限以允许任何人更新它们。
这听起来像是家庭网络的事情,对于很多事情来说,这确实是一个很好的学习机会——IP 路由、VPN、名称解析。也许你希望它“正常工作”,而不是一个学习机会,在这种情况下,我只能表示歉意,并说这些事情还没有“交钥匙”。
答案2
Evan 的评论是正确的,但我还是建议您考虑启用“重定向网关”并将服务器配置为接受所有互联网流量,至少在您进行任何内容过滤的情况下。如果您不这样做,您的笔记本电脑将(甚至会)成为您网络的一个漏洞。
分割隧道 VPN 通常被认为是不安全因为它本质上为入侵笔记本电脑的攻击者提供了通往网络核心中心的短路。
答案3
您需要确保您的 Windows OpenVPN 服务器已安装路由服务。
之前提到过这一点,但强烈建议您将 LAN 网络地址更改为 192.168.1.X 以外的地址。大多数 Linksys 等都与该网络兼容,因此远程主机无法访问您网络内的主机。我看到您的 VPN 网络设置为 192.168.10.X,这很好。现在将您的 LAN 设置为 192.168.5.X 之类的地址。相信我,这样效果会更好。
然后您可以打开重定向网关,但我不建议这样做,因为它会占用您的带宽。如果您的网络上有 IDS/IPS 设备或类似设备,那么它可能会有所帮助。
我会将动词设置为高于 1 ...我将其保持在 4 以查看发生了什么。
希望有帮助!
答案4
很抱歉挖掘了这个秘密,但经过两个小时的努力恢复连接到 Ubuntu OpenVPN 服务器的 Windows 机器的互联网访问后,我终于找到了对我有用的方法(希望对其他人也有效):
[Windows 8.1 x64 和 Ubuntu Server 20.04]
- 在 Windows 机器上,首先转到
Network and Sharing Center
,右键单击主 NIC(在我的情况下是 WiFi USB),然后Properties
->Internet Protocol Version 4
->Properties
->Advanced
-> 取消选中Automatic metric
-> 设置Interface metric
为小数字,如 10 ->OK
->OK
->OK
- 现在喝点水,打开 Linux 机器 -> 在终端中写入
nano /etc/openvpn/server/server.conf
-> 添加此行push "route-metric 1000"
(1000 或类似数字)-> 保存文件,然后按Ctrl+X
Y ->重启 OpenVPN 服务器,这样你就可以在 Windows 机器上再次访问互联网了systemctl restart [email protected]
现在我有两个完全可以正常工作的不同设置:
可以访问 Internet 并通过 OpenVPN 连接到 Linux 机器的 Windows 机器 可以访问 Internet 并通过 OpenVPN 连接到 Vbox'd Linux 机器的 Windows 机器