我不知道该怎么做。
如何让选定的 VPN 用户通过 eth0 访问互联网?所有服务器流量都通过 eth1。eth0
只应让 VPN 用户在选定的端口上访问互联网,而不提供其他任何功能。
用户通过 eth1 连接并在 tun0 中分配一个具有单独配置的 IP,这是用户 ccd 之一:
ifconfig-push 192.168.200.5 192.168.200.6
push “重定向网关def1”
用户配置
客户
开发调谐
原始 UDP
远程 192.168.0.55 1194
解析-重试无限
持久密钥持久调谐
ca ca.crt cert client.crt 密钥 client.key
ns-cert-type 服务器
tls-auth ta.key 1
康普
动词 3
服务器配置:
本地 192.168.0.55
端口 1194
原始 UDP
开发调谐
ca ca.crt cert server.crt 密钥 server.key
dh1024.pem
服务器 192.168.200.0 255.255.255.0
ifconfig-pool-persist ipp.txt
客户对客户
保持活动 10 120
tls-auth ta.key 0
康普
最大客户端数 10
持久密钥持久调谐
我当前的IP表规则:
#刷新所有
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X#允许所有
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT#允许回环
iptables -A INPUT -i lo -j ACCEPT#阻止 eth0 上的所有传入连接并允许建立的连接
iptables -A INPUT -i eth0 -j DROP
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
已开启转发:
sysctl net.ipv4.ip_forward=1
谷歌下班后(https://community.openvpn.net/openvpn/wiki/BridgingAndRouting)我认为这是正确的方法,但它不起作用:
# 允许从 VPN 发起的流量访问“世界”
iptables -I FORWARD -i tun0 -o eth0 \ -s 192.168.200.0/24 -m conntrack --ctstate NEW -j ACCEPT
# Allow established traffic to pass back and forth
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
# Masquerade traffic from VPN to "the world" -- done in the nat table
iptables -t nat -I POSTROUTING -o eth0 \
-s 192.168.200.0/24 -j MASQUERADE
非常感谢您的帮助:)
答案1
您还需要设置一个策略路由表,告诉 Linux 为 VPN 用户使用 eth0 后面的默认网关。
因此,您需要为源 IP 地址为 192.168.200.0/24 的数据包创建一个新的路由表,并将该路由表的默认网关设为 eth0 后面的默认网关。