Ubuntu:openVPN流量转发设置方法

Ubuntu:openVPN流量转发设置方法

如果成功在ubuntu上部署了openvpn,并且客户端也可以连接到vpn服务器。但无法通过vpn流量转发上网,应该是vpn服务器上的流量转发没有设置。要在Ubuntu上配置VPN服务器以允许流量转发,可以采取以下步骤:

  1. 启用内核 IP 转发 编辑 /etc/sysctl.conf 文件,取消注释或添加以下行以启用 IP 转发:
    sudo vim /etc/sysctl.conf

    确保以下行没有注释(没有 # 开头):

    net.ipv4.ip_forward=1

    保存并关闭文件后,执行以下命令使更改生效:

    sudo sysctl -p
  2. 配置iptables以进行流量转发 使用 iptables 工具配置流量转发。在我的服务器中,VPN接口是 tun0,外部接口是 eth0。
    sudo iptables -A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
    sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

    这里的 10.8.0.0/24 是实际使用的VPN IP 地址范围。

保存这些规则并使其在每次系统启动时都生效: sudo iptables-save | sudo tee /etc/iptables/rules.v4

  1. 持久保存iptables规则 确保在系统重新启动后,iptables 规则得以保留。在 Ubuntu 中,可以通过设置 iptables-persistent 包来实现。

    sudo apt-get update
    sudo apt-get install iptables-persistent

    安装过程中会询问是否保存当前的 iptables 规则,选择是。这样就会在系统启动时加载之前保存的规则。

  2. 重启 OpenVPN 服务 重新启动 OpenVPN 服务,以便应用所做的更改:

    sudo systemctl restart openvpn@hk-vpn

    完成以上步骤后,应该能够允许VPN服务器上的流量转发,并允许连接到VPN的客户端访问互联网。确保适当修改iptables规则以匹配你的网络配置。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注