V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saytesnake
V2EX  ›  程序员

内网隧道转发并保持链接,除了 autossh 以外还有方式吗?

  •  
  •   saytesnake · 2020-04-28 10:29:24 +08:00 · 3011 次点击
    这是一个创建于 1656 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是为了通内部另外一个网段的两个数据库,最简单的方式,第一反应肯定是 SSH 隧道。

    数据库 A,1.1.1.1:5432
    数据库 B,2.2.2.2:5432

    中转机,192.168.1.2
    转发机,192.168.1.3

    在转发机 192.168.1.3 操作,

    ssh -fCPN -L :50000:1.1.1.1:5432 [email protected]
    ssh -fCPN -L :50001:2.2.2.2:5432 [email protected]

    不过没有有效连接的情况下,超时之后肯定会断,那得用 autossh 了,不过可能方式不太对。

    autossh -M 1234 -CPN -L :50000:1.1.1.1:5432 [email protected]
    autossh -M 5678 -CPN -L :50001:2.2.2.2:5432 [email protected]

    启动输入密码后偶尔会提示 remote port forwarding failed for listen port 1234,系统日志会提示说,ssh exited with error status 255; restarting ssh,持续时间很短后自己就断掉了,而且也不会自己重连,谷歌查了有些文章,试了其它命令,都不太行,另外不明原因 autossh -f 后台启动是无效的...

    搞不懂。
    21 条回复    2020-04-29 01:33:25 +08:00
    cubecube
        1
    cubecube  
       2020-04-28 10:32:40 +08:00
    supervisor 自己监控 ssh 命令 比 autossh 靠谱。我之前也折腾过一整子 autossh,也有各种问题 最后放弃了。
    iyezi
        2
    iyezi  
       2020-04-28 10:58:06 +08:00
    我选择用 systemd 监控 frp
    saytesnake
        3
    saytesnake  
    OP
       2020-04-28 11:23:46 +08:00
    @cubecube 看来不是只有我遇到这个问题了。

    @iyezi systemd 的写法,是不是类似这样的,https://gist.github.com/drmalex07/c0f9304deea566842490
    tuxz
        4
    tuxz  
       2020-04-28 11:28:05 +08:00
    可以试试 frp
    tuxz
        5
    tuxz  
       2020-04-28 11:29:15 +08:00
    autossh 是检查到 ssh 断开后会自动重连
    saytesnake
        6
    saytesnake  
    OP
       2020-04-28 11:37:34 +08:00
    @tuxz FRP 应该可以的,就是为了方便,不想装第三方的东西。
    tuxz
        7
    tuxz  
       2020-04-28 11:39:47 +08:00
    @saytesnake #6 autossh 自动重连失败的话,可以 debug,看下日志
    no1xsyzy
        8
    no1xsyzy  
       2020-04-28 11:41:57 +08:00
    @saytesnake #3 @ 的语法注意一下就行,你需要在 /etc/default/secure-tunnel@a-name 里面写点东西,然后 systemctl --user enable [email protected]
    不清楚是 arch 的包比较先进还是 $$ 那边终于先进了,好久没碰 linux,最近装了 arch 发现了 sslocal 用了这个语法……
    abcdabcd987
        9
    abcdabcd987  
       2020-04-28 11:43:50 +08:00
    autossh -M 0 -o ServerAliveInterval=10 -o ServerAliveCountMax=2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes
    MeteorCat
        10
    MeteorCat  
       2020-04-28 11:44:57 +08:00 via Android
    tinc 可以
    no1xsyzy
        11
    no1xsyzy  
       2020-04-28 11:48:31 +08:00
    supervisor 也好用,倾向于 supervisor 处理业务服务,systemd 处理系统服务
    大部分情况下差得不多,supervisor 可以直接 attach 上去,如果是有控制台界面的服务端程序,比如 MC,supervisor 效果好得多。
    winglq
        12
    winglq  
       2020-04-28 12:32:31 +08:00
    我有个类似需求,所以写了个工具,你可以试试。已经稳定使用挺久了。

    https://github.com/winglq/l4proxy
    PbCopy111
        13
    PbCopy111  
       2020-04-28 12:41:08 +08:00
    如果修改服务器上 ssh 的配置呢:
    ClientAliveInterval 30
    Kobayashi
        14
    Kobayashi  
       2020-04-28 12:47:11 +08:00 via Android
    autossh 已经属于被淘汰的玩意儿了,原理和内置的 ServerAlive 基本一致。( ServerAlive 配置在客户端设定连接服务器,ClientAlive 设定在服务端,只设置其一即可)
    如果 ServerAlive 还不行就 systemd 。
    如果还是断,那就别玩儿了,网络就这样了。
    wslzy007
        15
    wslzy007  
       2020-04-28 13:11:56 +08:00
    直接上 sg 吧,足够轻量
    https://github.com/lazy-luo/smarGate
    saytesnake
        16
    saytesnake  
    OP
       2020-04-28 14:02:19 +08:00
    @no1xsyzy 这个方法是有效的,也不用安装其它东西了。无论怎么说,CentOS 的包肯定是落后的,哈哈哈。
    shynome
        17
    shynome  
       2020-04-28 14:20:27 +08:00 via Android
    tabliu
        18
    tabliu  
       2020-04-28 15:57:15 +08:00
    ngrok
    iyezi
        19
    iyezi  
       2020-04-28 16:03:51 +08:00
    @saytesnake #3 frp 里已经带上 systemd service 的模板,改改就能用了。https://github.com/fatedier/frp/tree/master/conf/systemd
    saytesnake
        20
    saytesnake  
    OP
       2020-04-28 16:51:45 +08:00
    @iyezi 嗯谢谢~
    cubecube
        21
    cubecube  
       2020-04-29 01:33:25 +08:00 via Android   ❤️ 1
    @iyezi 有时候只有一个 22 端口可用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:45 · PVG 00:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.