xmlf
V2EX  ›  问与答

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

  •  1
     
  •   xmlf · Dec 13, 2022 via Android · 6867 views
    This topic created in 1424 days ago, the information mentioned may be changed or developed.
    有台内网机器 A 无法连接互联网,机器 B 可以连接。A 和 B 可以互联。



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

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



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

    2.设置 iptables 规则
    iptables -t nat -A POSTROUTING -j MASQUERADE
    DonaidTrump
    DonaidTrump
    Dec 13, 2022
    6
    @xmlf 1 就行,不用 2 ,然后把 b 的局域网 IP 设为 A 的网关,然后重启 A ,试试看 A 能上网了不
    systemcall
    systemcall
    Dec 13, 2022 via Android
    7
    @xmlf #5
    2 是开启 nat ,有时候叫 IP 动态伪装,正常情况下不需要。1 就够了
    DNS 也要记得修改
    还有,这种情况,如果你不是 fake-ip 模式,就要把 ipv6 给关掉。如果是 fake-ip ,还要在机器 A 添加 fake-ip 的路由表
    ikidou
    ikidou
    Dec 13, 2022 via Android
    8
    应该 6 楼的说法就可以,这样就可以认为是大家常说的旁路由 /单臂路由
    HolaPz
    HolaPz
    Dec 13, 2022
    9
    @tulongtou 老哥 请问一下 A 把 B 设为网关, 在 B 上有个 SOCKS5 端口,是不是要 iptables 来让 A 所有 TCP 和 UDP 转发到 SOCKS5 端口上?
    greenskinmonster
    greenskinmonster
    Dec 13, 2022
    10
    如果只是想指定的命令走代理,cgproxy 不错,本机还需要配合一个透明代理转发,如 v2ray 。
    xmlf
    xmlf
    OP
    Dec 13, 2022 via Android
    11
    @tulongtou 不行,必须加上 2 的命令。我加了 -s 进行了限定
    OneNian
    OneNian
    Dec 13, 2022
    12
    VPN ,例如 WireGuard
    DonaidTrump
    DonaidTrump
    Dec 13, 2022
    13
    @HolaPz 是的,你这就是延伸的问题了。OP 只是让 A 可以联网
    ilay1678
    ilay1678
    Dec 14, 2022 via Android
    14
    lingling47
    lingling47
    Dec 17, 2022 via Android
    15
    s5tun
    diyer22
    diyer22
    Jan 4, 2023
    16
    推荐 [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
    test1199
    Oct 28, 2024
    17
    @diyer22 請問怎麽在 a 的 web 裏邊配置一個 socks5 server;
    建一個 server 裏邊沒有 socks 類型啊!!!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2082 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 02:40 · PVG 10:40 · LAX 18:40 · JFK 21:40
    ♥ Do have faith in what you're doing.