我在远程服务器上安装了 openvpn,它是 Arch Linux。我可以连接到它,但连接后没有互联网,这意味着,当我打开浏览器并尝试加载网站时,它会在“查找...”时出现问题
两边都没有错误。据我所知,服务器不在 NAT 后面,而我(客户端)在 NAT 后面。
服务器上没有防火墙。
我认为与路由、转发有关吗?
答案1
当你在客户端和 VPN 服务器之间创建 VPN 连接时,两者之间会形成一个专用网络,地址以 192.168.xx、10.xxx 或 172.16.xx 开头
当您想要将流量从 VPN 客户端路由到全球互联网时,您必须在服务器上使用 NAT,以便将 VPN 客户端的私有网络地址转换为服务器的公共 IP 地址。
这与您的客户端连接是否位于 NAT 之后无关。
因此,除了安装 VPN 软件之外,您还需要在服务器中添加 NAT 的防火墙规则。
答案2
我检查了你的日志,没有发现任何问题。但你说有No firewall on the server
。这可能会导致问题,因为你应该启用转发才能使 NAT 正常工作。以下是指导。
联邦快递
为了配置 VPN 流量的 ufw 设置,首先将以下内容添加到 /etc/default/ufw:
DEFAULT_FORWARD_POLICY="ACCEPT"
现在更改 /etc/ufw/before.rules,并在标题之后和“*filter”行之前添加以下代码。不要忘记更改 IP/子网掩码以匹配 /etc/openvpn/server/server.conf 中的 IP/子网掩码。示例中的适配器 ID 通常称为 eth0,因此请根据您的系统对其进行相应编辑。
/etc/ufw/before.rules
# NAT (Network Address Translation) table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from clients to eth0 -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # do not delete the "COMMIT" line or the NAT table rules above will not be processed COMMIT
打开OpenVPN端口1194:
# ufw allow 1194
最后,重新加载 UFW:
# ufw reload
iptables
为了允许 VPN 流量通过服务器的 iptables 防火墙,首先在服务器上创建 NAT 转发 [3] 的 iptables 规则,假设您要转发到的接口名为 eth0:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
不要忘记在 sysctl 中启用转发
sysctl -w net.ipv4.ip_forward=1
答案3
也许是 OpenVPN Linux 客户端安装时的权限问题,因为它并没有创建隧道。 所以我自己做了一个(这是实际问题):
sudo ip tuntap add name tun0 mode tun
sudo ip link show
并在询问 VPN 用户名和密码后连接。
仅供参考,openvpn3 linux 客户端自动安装程序也可能对您有所帮助:https://github.com/OpenVPN/openvpn3-linux