我已经设置了一个 openvpn 服务器,生成了一个证书并将其下载到我的客户端计算机。
在网络管理器中导入 client.ovpn 文件后,我仍然可以 ssh 到服务器本身,但无法访问互联网。
在我服务器的 openvpn 中服务器配置文件, 我有:
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
全部未注释。
在全球范围内系统配置文件文件我也有:
net.ipv4.ip_forward=1
我在配置方面有什么遗漏的吗?我可以做什么来帮助调试问题?
答案1
在您的服务器上,net.ipv4.ip_forward=1
这还不够,它只启用转发代码。您仍然必须告诉内核(通过 iptables)它允许转发什么、从谁转发以及转发到哪里。您应该阅读Linux IP 伪装指南。
如果你想重定向全部通过 VPN 连接的网络流量(如果您连接到不受信任的网络,出于安全原因有时需要这样做,但通常不需要,因为它可能非常慢)。如果您想在连接到 VPN 的同时通过普通网络访问互联网,请务必选中“仅将此连接用于此网络的资源”(这可能不是确切的句子,我是从法语翻译的)单击“路由...”按钮(位于网络管理器小程序中 VPN 连接设置的“IPv4 设置”选项卡底部)后出现的弹出窗口。
答案2
我使用以下 iptables 规则从我的 ovpn 服务器转发流量
IPT=$(其中 iptables) WWW=“eth0” ${IPT} -A 输入 -i ${WWW} -p udp --dport 1194 -m 状态 --state 新 -j 接受 ${IPT} -A 输入 -i tun0 -j 接受 ${IPT} -A 转发 -i tun0 -o ${WWW} -j 接受 ${IPT} -A 转发 -i ${WWW} -o tun0 -j 接受