V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lamesbond
V2EX  ›  Linux

彦祖们,求推荐一款 Linux 端口转发软件

  •  
  •   lamesbond · 2021-05-20 11:19:18 +08:00 · 7992 次点击
    这是一个创建于 1284 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们公司是在一台 DMZ 主机,linux 系统上用 iptables 做端口转发,但是 iptables 转发后就看不到客户端的 IP 了,被 iptables 做了源地址转换。nginx 和 haproxy 能看到客户端 IP,但是配置比较麻烦,有时需要批量端口转发,比如 80-90 批量转发到 80-90 端口,没有 iptables 方便。 能看到客户端 IP,配置方便,支持批量端口转发,有这样的软件不

    42 条回复    2021-06-20 19:10:54 +08:00
    DaGongRen001
        1
    DaGongRen001  
       2021-05-20 11:24:21 +08:00
    可以使用 frp
    brader
        2
    brader  
       2021-05-20 11:27:07 +08:00   ❤️ 1
    v2ray 能满足到这个要求,但是配置也挺复杂的,需要一定的学习能力。
    darknoll
        3
    darknoll  
       2021-05-20 11:40:55 +08:00   ❤️ 1
    gost
    defunct9
        4
    defunct9  
       2021-05-20 11:45:09 +08:00
    go-tcp-proxy_1.0.2_linux_amd64
    hulala1021
        5
    hulala1021  
       2021-05-20 11:49:27 +08:00
    可以安装个 nginx 图形化管理工具来配置 nginx
    KyonLi
        6
    KyonLi  
       2021-05-20 11:49:53 +08:00
    geeglo
        8
    geeglo  
       2021-05-20 12:14:30 +08:00
    @KyonLi 这文章错误的。
    EPr2hh6LADQWqRVH
        9
    EPr2hh6LADQWqRVH  
       2021-05-20 12:17:39 +08:00
    只能说你 DMZ 主机的 iptables 配置得不对,错误地进行了 SNAT,好好改一下,入方向包不要覆盖源地址
    icepie
        10
    icepie  
       2021-05-20 12:28:09 +08:00
    caddy
    Ehco1996
        11
    Ehco1996  
       2021-05-20 12:29:13 +08:00 via iPhone
    github.com/Ehco1996/ehco

    推荐一下我自己写的,支持配置文件
    zhoudaiyu
        12
    zhoudaiyu  
       2021-05-20 12:35:02 +08:00 via iPhone
    Socat 是不是
    gaozihang
        13
    gaozihang  
       2021-05-20 12:45:23 +08:00
    rinetd
    lixiang2017
        14
    lixiang2017  
       2021-05-20 12:50:12 +08:00 via Android
    firewalld
    oxromantic
        15
    oxromantic  
       2021-05-20 12:51:44 +08:00
    先搞清楚你要转发什么协议还需要知道源地址,如果 HTTP 协议 nginx 之类反向代理都支持,修改 x-forward
    如果你要转发 FTP 协议,那么协议本身不支持源地址表达,就没法做成你要的效果,除非转发前自己把源地址存到共享空间
    d0m2o08
        16
    d0m2o08  
       2021-05-20 13:03:35 +08:00
    我都是用 nc 没测试过能不能看到源地址

    nc -l -k -p 80 -c "nc 1.2.3.4 80"
    henices
        17
    henices  
       2021-05-20 13:13:19 +08:00
    socat
    sleepm
        18
    sleepm  
       2021-05-20 13:31:24 +08:00 via Android
    traefik
    lchqfnu
        19
    lchqfnu  
       2021-05-20 14:11:43 +08:00
    rinetd
    NaVient
        20
    NaVient  
       2021-05-20 14:28:07 +08:00
    rinetd
    hanyceZ
        21
    hanyceZ  
       2021-05-20 15:01:27 +08:00
    你也是啊,肖战
    micookie
        22
    micookie  
       2021-05-20 15:11:05 +08:00
    rinetd
    xuanbg
        23
    xuanbg  
       2021-05-20 15:19:13 +08:00
    nginx
    whitelee8080
        24
    whitelee8080  
       2021-05-20 15:20:00 +08:00
    rinetd
    CallMeReznov
        25
    CallMeReznov  
       2021-05-20 15:23:58 +08:00
    最近用了一款 rinetd,可以很简单的转发端口,但不知道为什么一旦转发的数据量起来后就会出现断流的情况,没仔细研究,解决了问题就给关了
    kiolygenius
        26
    kiolygenius  
       2021-05-20 16:00:15 +08:00
    gost +1
    weizhen199
        27
    weizhen199  
       2021-05-20 16:02:38 +08:00
    tinyPortMapper,比 scop 还轻量化
    udp2raw tunnel 大佬的作品
    UserDMM
        28
    UserDMM  
       2021-05-20 16:05:18 +08:00
    名字都叫错了,我是冠希.....
    abersheeran
        29
    abersheeran  
       2021-05-20 16:09:03 +08:00
    @UserDMM 冠希哥,听说你在 LA 的高桥遇到一群混混被打劫了三百块?
    zliea
        30
    zliea  
       2021-05-20 16:52:38 +08:00
    rinetd+1
    SenLief
        31
    SenLief  
       2021-05-20 21:46:48 +08:00
    socat?
    princeofwales
        32
    princeofwales  
       2021-05-21 08:33:09 +08:00
    nginx 转发端口哪里复杂了
    motianya211314
        33
    motianya211314  
       2021-05-21 10:40:04 +08:00
    rinetd
    salmon5
        34
    salmon5  
       2021-05-21 10:57:27 +08:00
    iptables >socat >nginx >rinetd,注意 rinetd 有伪造的: https://github.com/boutell/rinetd/issues/8
    salmon5
        35
    salmon5  
       2021-05-21 10:57:48 +08:00
    rinetd 谨慎使用
    CoderLife
        36
    CoderLife  
       2021-05-21 15:05:28 +08:00
    rinetd +2
    lymith
        37
    lymith  
       2021-05-21 21:17:49 +08:00
    c++手写一个吧
    SaigyoujiYuyuko
        38
    SaigyoujiYuyuko  
       2021-05-22 15:44:06 +08:00
    L7 的转发不保证源地址 除非 Proxy Protocol 没记错的话 frp 支持端口段转发+Proxy Protocol
    ducks
        39
    ducks  
       2021-05-24 20:46:28 +08:00
    @DaGongRen001 单个配置域名太蛋疼了把
    lamesbond
        40
    lamesbond  
    OP
       2021-05-26 16:45:23 +08:00
    感谢彦祖们的回复,试了 frp,得单独配置服务端和客户端,太麻烦弃了,gost 也是服务端客户端,rinetd 看到文章说不稳定,不敢用,找到 haproxy-wi 工具,官网一看要收费,算了,就用 nginx web 界面配置把,或者 lvs 。
    这些工具都没法像 iptables 那样一条命令转发多个端口,比如 8000~8009 转发到 8000~8009,或许我该针对 nginx 或 lvs 写个批处理脚本?
    123zsr123
        41
    123zsr123  
       2021-05-29 16:57:35 +08:00
    和目标服务器建一个 vpn 再用 iptables 只做 DNAT 就可以看到客户端地址了
    wxlg1117
        42
    wxlg1117  
       2021-06-20 19:10:54 +08:00
    我试过 n 多端口转发,持久和量大算 goproxy 最好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4405 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:08 · PVG 09:08 · LAX 17:08 · JFK 20:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.