我希望能够连接到我的家庭网络并通过 访问我的音乐mpd
。我在家中设置了 VPN 网络,因此我可以从外部安全地连接到家庭网络中的计算机,并将安全风险降至最低。但在工作时,我不想打扰连接互联网等的常规路由。
我应该如何设置 OpenVPN 客户端配置文件,以便能够从外部访问家庭网络上的计算机,而无需更改 Internet 路由?
mpd
[或者,是否有更好的方法从外部网络连接而不产生安全风险?]
[编辑:我当前的客户端配置文件如下所示:
client
dev tun
proto udp
remote some.web.site.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ns-cert-type server
key-direction 1
cipher AES-128-CBC
comp-lzo
verb 1
mute 20
]
答案1
将您的客户端设置为仅具有到您家庭 LAN 的路由参数。例如,如果您的家庭 LAN 是 192.168.2.0,则 .conf 文件中的参数将如下所示:
route 192.168.2.0 255.255.255.0
并且不要将任何路由从服务器推送到客户端。这样,当隧道出现时,您将通过它进行路由的就是您在路由参数中输入的网络。
更新:
由于您的服务器有这些推送线:
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
您需要删除它们才能达到您想要的效果。如果您的服务器上运行两个 openvpn 实例,那就更好了。一份包含实际配置,一份包含修改后的配置,您将在从办公室连接时使用该配置。只需让两个配置侦听不同的端口并根据需要连接到它们即可。
例如,在实际的服务器配置末尾放置以下参数:
port 1200
并在修改后的一放上:
port 1201
然后您的客户端可以根据您的需要连接到任一端口。
答案2
冒着从死里挖出这条线索的风险(它出现在相关内容中)。
事实上,这很简单。您无需在服务器上执行任何操作。
将以下行添加到您的.ovpn
配置文件中:
route-nopull
route 192.168.1.210 255.255.255.255 vpn_gateway #for single IP address
route 172.16.69.0 255.255.255.0 vpn_gateway #for /24 range
etc...
这样,默认路由不会改变,但流向这些 IP 地址的流量将经过 VPN。
有关这方面的更多信息可以在OpenVPN 官方手册。
摘抄:
--route-nopull
When used with --client or --pull, accept options pushed by server EXCEPT
for routes, block-outside-dns and dhcp options like DNS servers.When used
on the client, this option effectively bars the server from adding routes
to the client’s routing table, however note that this option still allows
the server to set the TCP/IP properties of the client’s TUN/TAP interface.