我之前曾尝试寻找解决方案,但我真的很困惑,并没有收到解决我的问题的答案(嗯,问题实际上是我缺乏知识)。
我的本地网络上有一台带有 2 个 NIC 的 Linux(debian)计算机。
- NIC 1(Wifi)连接到我的主路由器 GW(192.168.31.1)并具有静态 IP 192.168.31.33
- NIC 2(USB)连接到我的 4G 手机网关(170.20.10.1)并具有静态 IP 170.20.10.2
我将 Squid 配置为监听端口 3128,配置如下:
acl ip1 myip 192.168.31.33
tcp_outgoing_address 170.20.10.2 ip1
acl home src 192.168.31.33 #LocalIP
http_access allow home
http_access deny all
http_port 3128
server_persistant_connections off
现在我知道从这里建立 192.168.31.33:3128 的连接并不足以最终使用网关 170.20.10.1。但我不确定这是 IP Masquerade 的问题(我很难完全理解)还是 iproute 的问题。
如能提供任何帮助或资源链接,我们将不胜感激!
编辑:
ip a 给出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 30:f7:d7:03:7d:ee brd ff:ff:ff:ff:ff:ff
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f4:06:69:ce:33:12 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.33/24 brd 192.168.31.255 scope global dynamic noprefixroute wlp1s0
valid_lft 38670sec preferred_lft 38670sec
inet6 fe80::b338:170e:8e51:b04a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: enp0s20u1c4i2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 36:a3:95:a2:12:a9 brd ff:ff:ff:ff:ff:ff
inet 170.20.10.2/24 brd 170.20.10.255 scope global noprefixroute enp0s20u1c4i2
valid_lft forever preferred_lft forever
inet6 fe80::34a3:95ff:fea2:12a9/64 scope link
valid_lft forever preferred_lft forever
知识产权
default via 192.168.31.1 dev wlp1s0 proto dhcp metric 600
default via 170.20.10.1 dev enp0s20u1c4i2 proto static metric 20100
169.254.0.0/16 dev enp0s20u1c4i2 scope link metric 1000
170.20.10.0/24 dev enp0s20u1c4i2 proto kernel scope link src 170.20.10.2 metric 100
192.168.31.0/24 dev wlp1s0 proto kernel scope link src 192.168.31.33 metric 600
答案1
您需要使用路由策略规则 ( ip rule
) 来实现基于源的路由,该规则从特定路由表中查找特定源的路由。例如:
ip route add default via 172.20.10.1 table 123
ip rule add from 172.20.10.2 table 123
IP 伪装是一种源 NAT,这意味着它只会更改流量的源 IP(在“路由”之后)。它不确定流量通过/到达哪个接口/网关。