我正在尝试在我的笔记本电脑和家里的网络之间安装 VPN,我的所有电脑(华硕 NAS 除外)都使用 Windows 10(我知道使用 Linux 会更容易,但我别无选择)。到目前为止,我可以与 OpenVPN 服务器所在的 Windows 机器通信,但是我无法连接其他电脑。
以下是我的网络计划以及我的 ovpn 配置文件:
服务器.ovpn
port 1194 proto udp dev tun ca "P:\\Serveurs\\OpenVPN\\config\\ca.crt" cert "P:\\Serveurs\\OpenVPN\\config\\server.crt" key "P:\\Serveurs\\OpenVPN\\config\\server.key" dh "P:\\Serveurs\\OpenVPN\\config\\dh1024.pem" tls-auth "P:\\Serveurs\\OpenVPN\\config\\ta.key" 0 topology subnet server 10.8.0.0 255.255.255.0 push "route 192.168.63.0 255.255.255.0" ifconfig-pool-persist ipp.txt client-to-client keepalive 10 120 cipher AES-256-CBC persist-key persist-tun status openvpn-status.log verb 3 explicit-exit-notify 1
aa-laptop.ovpn (客户端):
client dev tun proto udp remote dns.perso.fr 1194 resolv-retry infinite nobind persist-key persist-tun ca "C:\\Program Files\\OpenVPN\\Config\\ca.crt" cert "C:\\Program Files\\OpenVPN\\Config\\AA-LAPTOP.crt" key "C:\\Program Files\\OpenVPN\\Config\\AA-LAPTOP.key" remote-cert-tls server tls-auth "C:\\Program Files\\OpenVPN\\Config\\ta.key" 1 cipher AES-256-CBC verb 3
如您所见,我可以使用 OpenVPN 连接我的笔记本电脑和服务器,完成后,我可以通过键入\\10.8.0.1
和来访问我的服务器共享\\192.168.63.4
,这两种方法都有效,太棒了!但我无法访问家庭局域网中的任何其他东西,无论是我的电脑\\192.168.63.2
还是我的 NAS \\192.168.63.7
。
这可能是服务器端缺少配置参数的问题,也可能是桥接问题,我不知道。但我发现的唯一帮助是使用route add gw
Linux 命令,而这显然无法在 Windows 上运行。
提前感谢您的帮助!
问候,
答案1
你可以用一行代码来简单地完成这个OpenVPN 使用它是路由命令,不需要.bat文件。
使用您的客户端.ovpn 来展示一个示例:
client
dev tun
proto udp
remote dns.perso.fr 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\Config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\Config\\AA-LAPTOP.crt"
key "C:\\Program Files\\OpenVPN\\Config\\AA-LAPTOP.key"
remote-cert-tls server
tls-auth "C:\\Program Files\\OpenVPN\\Config\\ta.key" 1
cipher AES-256-CBC
verb 3
# Add this line here
route 192.168.63.0 255.255.255.0 192.168.63.1
就是这样!您只需添加route 192.168.63.0 255.255.255.0 192.168.63.1
到客户端 .ovpn。对于其他网络设置,语法如下:
route SUBNET SUBNET-MASK GATEWAY
因此,如果你使用CIDR 范围192.168.0.0/16,并且 192.168.1.1 是您的网关,您可以执行以下操作:
route 192.168.0.0 255.255.0.0 192.168.1.1
重要的是,它将(在内部)使用客户端系统原生的任何命令来实际实施因此,对于 Windows,它将执行route ADD 192.168.0.0 MASK 255.255.0.0 192.168.1.1
,Linux/OSX 将是其内置的路由方法。这样可以使文件更具可移植性。
您可能已经想到了,由于push
只需向客户端发送一个设置,因此您与原始服务器 .ovpn 非常接近:
push "route 192.168.63.0 255.255.255.0"
缺少网关。
如果您在末尾添加了 192.168.63.1,它就会起作用。您可以从客户端或服务器端执行此操作,但我认为最好在客户端执行此操作,因为如果您需要访问不同网络(例如具有不同子网)上的文件,编辑客户端 .ovpn 会更容易,但这确实取决于部署环境。
答案2
您所做的就是在 Windows 10 机器中创建一个新的虚拟网卡,为其指定一个 IP 地址,然后让远程系统对其进行 ping。这些都是标准操作,但采用的是软件方式,而不是将以太网适配器插入 USB 端口。
现在的问题是路由,只有微软的服务器产品本身支持路由。有以下方法:Internet 连接共享(选择 VPN 适配器而不是该文章中的 Hosted Virtual)这会将您的 Windows 10 系统变成一个迷你互联网路由器。遗憾的是,它不会允许您的 LAN 设备发起与 VPN 客户端的连接,但除此之外,它运行得相当好。
另一种选择非常不可靠,而且在 Windows 10 客户端中启用本机路由直接在注册表中进行非常低级的更改。请谨慎行事。事实上,最好不要这么做。
如果你真的想要灵活性,可以考虑购买低成本的路由器DD-WRT或者OpenWRT,两者都支持 OpenVPN 和本机路由,具有良好的图形界面。你可以使用 40 美元的设备,例如TP-Link WA-901ND,但请检查其网站上支持的设备列表。
如果你喜欢冒险,并且真的想掌握 Linux,树莓派将会做得非常好。
额外的好处是这些低功耗设备不需要一直开启。
答案3
答案4
路由 ADD -p 参数添加永久生效。无需制作 bat 文件