Linux 全局真代理有什么好的解决方案吗?

2022-12-13 19:17:23 +08:00
 xmlf
有台内网机器 A 无法连接互联网,机器 B 可以连接。A 和 B 可以互联。



现在用的方案是 iptables 配合 redsocks 端口转发实现 tcp 和 udp 连接互联网。

但是 A 上面跑的代码有时候会出现无法连接外网的情况。



各位大佬还有什么更好的方案没有?
4076 次点击
所在节点    问与答
16 条回复
tulongtou
2022-12-13 19:24:38 +08:00
A 拿 B 做网关,B 开启 IP 转发
cvbnt
2022-12-13 19:26:32 +08:00
用 clash tun ,通过 socks5 连接
xmlf
2022-12-13 19:30:07 +08:00
@cvbnt 目前使用的就是 redsocks 配置成 clash 的 socks5 端口
xmlf
2022-12-13 19:30:28 +08:00
@tulongtou 有具体演示或说明文档吗?
xmlf
2022-12-13 19:33:41 +08:00
@tulongtou
是用这个方法吗?
1.开启 IP 转发
echo "1">/proc/sys/net/ipv4/ip_forward

2.设置 iptables 规则
iptables -t nat -A POSTROUTING -j MASQUERADE
tulongtou
2022-12-13 19:57:50 +08:00
@xmlf 1 就行,不用 2 ,然后把 b 的局域网 IP 设为 A 的网关,然后重启 A ,试试看 A 能上网了不
systemcall
2022-12-13 20:38:20 +08:00
@xmlf #5
2 是开启 nat ,有时候叫 IP 动态伪装,正常情况下不需要。1 就够了
DNS 也要记得修改
还有,这种情况,如果你不是 fake-ip 模式,就要把 ipv6 给关掉。如果是 fake-ip ,还要在机器 A 添加 fake-ip 的路由表
ikidou
2022-12-13 20:38:45 +08:00
应该 6 楼的说法就可以,这样就可以认为是大家常说的旁路由 /单臂路由
HolaPz
2022-12-13 21:08:47 +08:00
@tulongtou 老哥 请问一下 A 把 B 设为网关, 在 B 上有个 SOCKS5 端口,是不是要 iptables 来让 A 所有 TCP 和 UDP 转发到 SOCKS5 端口上?
greenskinmonster
2022-12-13 21:41:32 +08:00
如果只是想指定的命令走代理,cgproxy 不错,本机还需要配合一个透明代理转发,如 v2ray 。
xmlf
2022-12-13 22:07:55 +08:00
@tulongtou 不行,必须加上 2 的命令。我加了 -s 进行了限定
OneNian
2022-12-13 22:15:44 +08:00
VPN ,例如 WireGuard
tulongtou
2022-12-13 22:41:50 +08:00
@HolaPz 是的,你这就是延伸的问题了。OP 只是让 A 可以联网
ifwangs
2022-12-14 09:00:06 +08:00
lingling47
2022-12-17 23:16:40 +08:00
s5tun
diyer22
2023-01-04 21:46:32 +08:00
推荐 [v2rayA]( https://github.com/v2rayA/v2rayA), 这是我了解到的最方便的 linux 真全局代理了

强大 /智能的功能, 易用的 WEB UI, 方便安装, 尤其是支持 Linux 真全局代理非常牛逼

在内网电脑 A 上 :
```bash
# 开一个 socks 5 的代理
ssh -D 0.0.0.0:1080 B_user@B_ip

# 想办法在 A 上安装并运行 v2rayA
# 以 docker 为例
docker pull mzz2017/v2raya
docker run -d \
--restart=always \
--privileged \
--network=host \
--name v2raya \
-e V2RAYA_ADDRESS=0.0.0.0:2017 \
-v /lib/modules:/lib/modules:ro \
-v /etc/resolv.conf:/etc/resolv.conf \
-v /etc/v2raya:/etc/v2raya \
mzz2017/v2raya
```

然后在 A 的浏览器打开 WEB UI: `http://127.0.0.1:2017`
配置一个 socks5 127.0.0.1:1080 的 server
然后在设置里面打开透明代理, 选择启用, 不进行分流

大功告成!!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/902281

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX