我的机器上的 IP
root@poweredge:/var/log/squid# ip addr show
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: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:1e:4f:cd:c1:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.1.212/24 brd 192.168.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::21e:4fff:fecd:c15f/64 scope link
valid_lft forever preferred_lft forever
3: wlx74da388c32c7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 74:da:38:8c:32:c7 brd ff:ff:ff:ff:ff:ff
inet 172.16.11.107/24 brd 172.16.11.255 scope global dynamic noprefixroute wlx74da388c32c7
valid_lft 3531sec preferred_lft 3531sec
inet6 fe80::4e86:c190:1e45:4722/64 scope link noprefixroute
valid_lft forever preferred_lft forever
我想使用 连接到 Squid 代理192.168.1.212
,如果我使用端口 11000 进行连接,我希望 Squid 让流量流出172.16.11.107
IP
下面是我的 squid.conf 的相关部分
http_port 11000 name=port_11000
acl port_11000_acl myportname port_11000
tcp_outgoing_address 172.16.11.107 port_11000_acl
据我所知,上述配置对于 Squid 来说应该足够了,但在 Linux 机器上,我还需要使用 iptables。我从未使用过 IP 表。
我需要对 iptables 做什么才能使其工作?
答案1
您也可以使用策略路由来执行此操作。首先,在文件 /etc/iproute2/rt_tables 中添加路由表,例如:
255 local
254 main
253 default
0 unspec
2 squid
例如,以下命令将查看同一个路由表(假设您已执行上述编辑):
ip route list table squid
由于我输入了 ip route list table squid,因此输出将是一个新的命令行。表中没有任何内容可列出。用路由填充每个表。我将在您的信息中使用本地接口地址 172.16.11.0/24
/sbin/ip rule add from wlx74da388c32c7 pref 1000 table squid
/sbin/ip route add table 172.16.11.0/24 default via 172.16.11.1
这里假设你的wlx74da388c32c7接口网关是172.16.11.1 那么就可以了~