V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xmlf
V2EX  ›  问与答

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

  •  1
     
  •   xmlf · 2022-12-13 19:17:23 +08:00 via Android · 4549 次点击
    这是一个创建于 695 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有台内网机器 A 无法连接互联网,机器 B 可以连接。A 和 B 可以互联。



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

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



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

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

    大功告成!!!
    test1199
        17
    test1199  
       11 天前
    @diyer22 請問怎麽在 a 的 web 裏邊配置一個 socks5 server;
    建一個 server 裏邊沒有 socks 類型啊!!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:38 · PVG 17:38 · LAX 01:38 · JFK 04:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.