分割隧道 VPN 接入点

分割隧道 VPN 接入点

我一直无法找到如何做到这一点。

我有一个 VPN 接入点,它使用 openconnect 和 hostapd 以及以下 vpn iptables 规则

pi@raspberrypi:~ $ cat /etc/iptables.ipv4.vpn.nat
# Generated by iptables-save v1.4.21 on Sun Sep  4 02:28:21 2016
*filter
:INPUT ACCEPT [2:152]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:152] 
-A FORWARD -i tun0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o tun0 -j ACCEPT
COMMIT
# Completed on Sun Sep  4 02:28:21 2016 
# Generated by iptables-save v1.4.21 on Sun Sep  4 02:28:21 2016
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [5:380]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
# Completed on Sun Sep  4 02:28:21 2016

以及以下非 VPN 接入点

# Generated by iptables-save v1.4.21 on Sun Sep  4 02:28:21 2016
*filter
:INPUT ACCEPT [2:152]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:152]
-A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -i wlan0 -o wlan1 -j ACCEPT
COMMIT
# Completed on Sun Sep  4 02:28:21 2016
# Generated by iptables-save v1.4.21 on Sun Sep  4 02:28:21 2016
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [5:380] 
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o wlan1 -j MASQUERADE
COMMIT
# Completed on Sun Sep  4 02:28:21 2016

有一些 IP 无法从 VPN 内部访问,因此我想要做的是通过 VPN 发送所有流量,例如 xxxx 和 xxxy 除外。对于该流量,我只想定期对其进行 nat,以便我可以通过接入点而不是通过 VPN 访问它。

知道我该怎么做吗?

答案1

你想太多了这个问题。

考虑两个接口的两个网关(网关,而不是接口本身的 IP 地址)

gweth0=192.168.1.254
gwtun0=10.1.1.1

你可以这样路由它们

route add default gw $gwtun0
route add -host x.x.x.x gw $gweth0
route add -host x.x.x.y gw $gweth0

您甚至可以路由整个子网

route add -net a.b.c.d/24 gw $gweth0

iptables ... MASQUERADE仅当您需要重写 IP 地址时才需要这些内容。来自单个客户,这是不可能的。

相关内容