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

无路由器权限,如何 SSH 穿透路由连接内网中的 Linux 机器?

  •  
  •   Tonni · 2014-06-27 16:14:39 +08:00 · 11022 次点击
    这是一个创建于 3796 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前提:我没有操作路由器的权限,不可能进行端口转发。

    我记得之前好像用什么动态地址解析能解决这个问题,不太清楚了,不知道有没有朋友能说下解决办法。
    第 1 条附言  ·  2014-12-12 14:13:27 +08:00
    看到有人收藏这个主题,更新下,已经不用ngrok了,改用n2n了,还是n2n大法好啊。
    第 2 条附言  ·  2018-08-29 14:06:42 +08:00
    现在改用 frp 了 https://github.com/fatedier/frp
    24 条回复    2015-09-21 10:36:21 +08:00
    zieglar
        1
    zieglar  
       2014-06-27 16:20:13 +08:00   ❤️ 2
    dafang
        2
    dafang  
       2014-06-27 16:21:59 +08:00   ❤️ 1
    你可以用 ngrok 这个软件。理论上,只要你有一台外网的服务器,是可以通过这台外网的服务器做tunnel来做数据转发的。

    你内网的机器连到外网服务器打开隧道 - 你外网的用户连到服务器握手隧道。

    然后就可以SSH双向数据传输了。

    ngrok可以方便的解决这个问题。单独的ssh也可以做到。
    66450146
        3
    66450146  
       2014-06-27 16:24:24 +08:00   ❤️ 1
    你有一台外网的服务器可以 ssh 的话,就可以用 ssh -R 来转发
    mantianyu
        4
    mantianyu  
       2014-06-27 16:26:17 +08:00   ❤️ 1
    动态地址解析应该解决不了这个问题吧
    Tonni
        5
    Tonni  
    OP
       2014-06-27 16:29:29 +08:00
    @66450146 有个美国的VPS,但是在家的长宽访问国外节点速度太慢了。
    Tonni
        6
    Tonni  
    OP
       2014-06-27 16:33:00 +08:00
    @zieglar 谢谢推荐,我试用了下,遇到一个奇怪的问题,我是用命令`ssh [email protected]`登陆,输入密码提示我密码错误,但是使用`ssh [email protected]`登陆输入密码既可以正常登陆。
    zieglar
        7
    zieglar  
       2014-06-27 16:49:07 +08:00
    看看页面上,有介绍可以让你 debug
    9hills
        8
    9hills  
       2014-06-27 16:55:52 +08:00   ❤️ 1
    @Tonni 选个国内的VPS做中转呗,Azure貌似有免费的
    sandtears
        9
    sandtears  
       2014-06-27 17:12:48 +08:00   ❤️ 1
    最简单的解决方案,买个花生壳新出的花生棒。

    麻烦点的话可以买个 VPS,然后用 ssh -R 2222:localhost:22 remote_ip 把本机的 22 端口映射到 VPS 上的 2222 端口。

    或者用 he.net 家的 IPv6 Tunnel 服务
    sandtears
        10
    sandtears  
       2014-06-27 17:19:38 +08:00
    另外国内 VPS 貌似不贵,我有个专门用来做端口转发的腾讯云,20+RMB/mo ,1Mbps 转发个 ssh 还是够了。
    Tonni
        11
    Tonni  
    OP
       2014-06-27 17:42:02 +08:00
    @dafang 忘记@你了,你遇到过6楼中提到的问题么?
    Tonni
        12
    Tonni  
    OP
       2014-06-27 18:21:52 +08:00
    @sandtears 我发现这个不能长久,执行命令后自动登录服务器可以连接,我关掉ssh客户端再登陆就不行了
    sandtears
        13
    sandtears  
       2014-06-27 19:31:40 +08:00
    @Tonni 加参数 ssh -qTfNg -R ... 这样
    sandtears
        14
    sandtears  
       2014-06-27 19:33:42 +08:00
    @Tonni 额 还是用 ssh -Cfg -R 吧,之前那个是我 ssh tunnel 的时候习惯用的。

    f 参数的意思就是把这个链接保持在后台
    dafang
        15
    dafang  
       2014-06-27 20:04:16 +08:00
    @Tonni 你没指定端口啊,你要看一下,一般你ngrok start ssh啥之后,会给你分配一个随机端口的。ngrok.com肯定不会把22端口给你的啊。。。
    Ansonyi
        16
    Ansonyi  
       2014-06-27 20:10:58 +08:00   ❤️ 1
    oott123
        17
    oott123  
       2014-06-27 22:20:51 +08:00 via Android   ❤️ 1
    试试 n2n ?
    udp 打洞,可以做到直连…
    Tonni
        18
    Tonni  
    OP
       2014-06-27 23:30:25 +08:00
    @zieglar
    @dafang
    @66450146
    @mantianyu
    @oott123
    @Ansonyi
    @sandtears
    @9hills

    感谢大家的帮助,我找到解决办法了,

    你需要注册一个ngrok的账号,他会给你分配一个token,
    执行命令./ngrok -authtoken YOU TOKEN -proto=tcp 22既可以分配给你一个临时的端口,这样你就可以远程登陆啦。配合tmux味道更佳!
    谢谢你们的帮助。
    zhoubug
        19
    zhoubug  
       2014-06-28 02:35:36 +08:00 via Android   ❤️ 1
    google play 或者 百度应用搜下n2n
    geeti
        20
    geeti  
       2014-06-28 03:24:46 +08:00   ❤️ 1
    如果能从内网的机器ssh到外部机器,那就可以用ssh的远程转发。
    从内网到外网: ssh -R 19999:localhost:22 [外网client]
    然后在外网就可以直接 ssh -p 19999 localhost
    dafang
        21
    dafang  
       2014-06-28 20:22:48 +08:00
    @Tonni 这些都可以放到配置文件里的。然后每次用的时候 ngrok start ssh

    付费版本还可以自定义域名。如果担心数据被窃听,这个是开源的软件,还可以自己部署。
    lovejoy
        22
    lovejoy  
       2014-06-28 23:55:40 +08:00
    logmein-hamachi 值得你拥有
    Love4Taylor
        23
    Love4Taylor  
       2014-07-01 09:55:46 +08:00
    为何不能upnp呢。。
    chunchu
        24
    chunchu  
       2015-09-21 10:36:21 +08:00
    我现在也已经转到 N2N 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   860 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:47 · PVG 05:47 · LAX 13:47 · JFK 16:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.