gpt4 book ai didi

linux - 鱿鱼 tcp_outgoing_address 失败,返回 "(22) Invalid argument"

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:02 28 4
gpt4 key购买 nike

大家好,

我在 Squid-Proxy 中设置两个输出互联网。下面是“图”我想要得到的最终结果:

SERVER1: SQUID SERVER
SERVER2: Internet2

:: Client :: ----- SERVER1 ---> INTERNET (MODEM)
v
|
| -----> SERVER2 ----> INTERNET (MODEM 2)

我在 squid.conf 中配置了以下几行:

acl route_alt dstdomain .whatismyip.com
tcp_outgoing_address <IP_SERVER2> route_alt

重新启动 Squid 并尝试访问该站点,返回以下错误:“(99) 无法分配请求的地址

所以谷歌搜索,我发现并做了以下事情:echo 1>/proc/sys/net/ipv4/ip_nonlocal_bind

现在尝试访问该站点时,返回以下错误:“(22) 无效参数

这些错误,只有“(99) 无法分配请求的地址”显示在/var/log/squid/cache.log。另一个在任何地方都找不到它。

通过 Strace 我发现了以下内容:

connect(267, {sa_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("72.233.89.199")}, 16) = -1 EINVAL (Invalid
argument)

Squid版本是3.1.19Linux版本:Fedora 15 64位内核版本:2.6.38.6-26.rc1

感谢任何帮助。

谢谢

最佳答案

tcp_outgoing_address 必须用于指定传出连接的本地 IP,您不能在那里使用外部 IP。如果你想用 Squid 控制路由,你应该这样做:

首先,您需要在 SERVER1 中有一个额外的 IP 地址,用于通过 SERVER2 进行通信。然后在squid.conf中加入:

tcp_outgoing_address IP2_SERVER1 ACL

之后你必须配置路由:

ip rule add table 100 from IP2_SERVER1
ip route add table 100 default via IP_SERVER2

最后两行设置当数据包以 IP2_SERVER1 作为源时的路由。

关于linux - 鱿鱼 tcp_outgoing_address 失败,返回 "(22) Invalid argument",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9872300/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com