我的服务器使用的是 CentOS 6.4 64 位,有 2 个网络适配器。第一个适配器有一个互联网 IP:192.241.190.x 第二个适配器是一个 LAN 网络,IP 为:10.60.5.62
我安装了 openvpn 并在其上配置了服务器,我的客户端通过 ip 192.241.190.x 连接到服务器。
这是我的服务器配置:
port 11592
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.1.0 255.255.255.0
topology subnet
push "route 10.60.5.0 255.255.255.0"
ifconfig-pool-persist ipp.txt
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
我已经添加了推送“路由 10.60.5.0 255.255.255.0”,但我的客户端无法连接到其他具有 IP 10.60.5.64 之类的服务器。
我如何才能正确地通过 VPN 将流量路由到 ip 10.60.5.x。我打开 /etc/sysctl.conf 进行编辑,并将 net.ipv4.ip_forward 的值也设置为 1,但不起作用。
答案1
您需要设置一些 iptables 功能来告诉系统屏蔽您的流量。这是我的示例。其中一些可能不需要工作
bond0 是我的内部子网
bond1 是我的公共子网,openvpn 客户端连接到该子网,其 IP 为 1.2.3.4
10.113.0.0/16 是我的 VPN 客户端子网
我删除了大部分规则,但保留了一些来向你展示它的外观
iptables -A POSTROUTING -s 10.113.0.0/24 -o bond0 -j MASQUERADE
iptables -A POSTROUTING -d 10.113.0.0/24 -j SNAT --to-source 1.2.3.4
这对我来说非常有效..允许我连接到 VPN,只要将正确的路由推送到客户端,就允许它们通过一个接口通过 openvpn 服务器发送内部流量,从另一个接口发送出去,并允许它路由回来。