maskerTUI
V2EX  ›  问与答

有没有稳定的网络穿透方案?

  •  
  •   maskerTUI · Nov 24, 2015 · 15351 views
    This topic created in 4006 days ago, the information mentioned may be changed or developed.
    需求:从校外访问校内的一个网站。
    没有学校的路由权限,所以做不了 dmz,vpn 之类的。
    现在用着 ngrok,但是在人数多的时候很容易断,稳定性不尽人意。
    问问 V 友有没有稳定的穿透 /建隧道的方案?
    求轮子
    Supplement 1  ·  Nov 24, 2015
    补充一下网络环境的情况: a,b,c,d 四台电脑, a,b 为校内局域网的, a 是不接外网的目标网站, b 是校内接了外网的电脑(windows), c 是有公网 ip 的一台 vps , d 是我,我(d)想通过访问 c 的时候就能直接访问到 a 的网站,求这样的一样轮子,最好 d 是不需要借助客户端的,因为我还要把这个通道发布给熟悉的人用。
    目前使用的方案, b 用 ngrok 把 a 的 80 端口映射到 c 去。缺点:不稳定。
    53 replies  •  2017-05-26 16:14:16 +08:00
    TuxcraFt
    TuxcraFt
    Nov 24, 2015
    1
    找一个校内的肉鸡…… (逃
    Sullivan
    Sullivan
    Nov 24, 2015
    2
    同样需求+1
    Sullivan
    Sullivan
    Nov 24, 2015
    3
    不知道 能不能 有 ssh 那样的反向连接没有。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    4
    @TuxcraFt 这个......我就算搞下来学校的某台肉鸡也不敢公开啊,我还没毕业呢
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    5
    @Sullivan 内网的跳板是个 windows ,用不了 ssh 。
    Sullivan
    Sullivan
    Nov 24, 2015
    6
    @maskerTUI 昂,我是说类似的工具~
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    7
    @Sullivan 目前找到的一些方案都一般般,花生壳限制太多,狗洞要两端安装客户端, ssh 需要 linux , teamviewer vpn 要客户端,看来是要逼自己造轮子的节奏。
    odirus
    odirus
    Nov 24, 2015
    8
    @maskerTUI 请问花生壳能为内网主机提供一个在外网可以访问的域名么,并且可以访问该域名(内网主机)的非 80 端口?
    loveyu
    loveyu
    Nov 24, 2015
    9
    之前用 ngork ,后来不行了
    odirus
    odirus
    Nov 24, 2015
    10
    @maskerTUI 如果你能访问内网主机的某个端口,也许我能帮到你
    comicfans44
    comicfans44
    Nov 24, 2015
    11
    n2n
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015 via Android
    12
    @odirus 有内网主机,求轮子
    GeekTest
    GeekTest
    Nov 24, 2015 via Android
    13
    就没人用 vpn 么。 anyconnect 挺稳定 shadowvpn 也不错
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015 via Android
    14
    @odirus 有内网机子,但是没有映射到公网的
    odirus
    odirus
    Nov 24, 2015
    15
    @maskerTUI 别着急,我在实验
    odirus
    odirus
    Nov 24, 2015
    16
    @maskerTUI 你内网有机子,外网有机子的话就好办了。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015 via Android
    17
    @odirus 可以提供一个二级域名,非 80 好像也可以,不知道有限制,有些还是收费的。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015 via Android
    18
    @odirus 外网机子可以用 vps 这个不是问题
    odirus
    odirus
    Nov 24, 2015❤️1
    19
    @maskerTUI 好吧,大概过程就是:
    ( 1 )内网的 Windows 安装一个 docker ,基于 linux 制作一个镜像,里面安装一个 HTTP 代理服务,假设开放的是 8080 端口
    ( 2 )同时使用 SSH 反向代理连接至你的 VPS ,"ssh -R 18080:localhost:8080 user@vps",大意是把内网主机的 8080 端口映射到 VPS 中的 localhost:18080 。
    ( 3 )再在 VPS 上安装一个 HTTP 代理服务,请求流量都转发至 localhost:18080
    ( 4 )在你自己的机器上填上 HTTP 代理信息,然后上网。

    当然中间很多细节可以优化
    ( 1 )比如不安装 HTTP 服务,可以安装一个 SS 服务,这样的话,国内 VPS 不用备案,因为不使用 HTTP 流量,而阿里云学生优惠还是比较大。
    ( 2 ) HTTP 服务在投入使用的时候一定要加密,因为总有人来爬你的代理信息。

    如果你不会制作 docker 镜像的话,可以留言,我可以做一个完整的教程。
    yexm0
    yexm0
    Nov 24, 2015 via Android
    21
    花生壳能为内网主机提供一个在外网可以访问的域名,不过价格真贵。
    imlonghao
    imlonghao
    Nov 24, 2015
    22
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    23
    @vs506 看了一下说明:
    免费用户(已到期用户)限速 10KB/s,可添加 3 个映射,映射 8 小时后失效需重新登录新建.
    付费用户不限速度,最快 1280KB/s,可添加 10 个映射,在 VIP 期间不会失效.
    还不如我自己搭建的 ngrok 服务呢
    Sullivan
    Sullivan
    Nov 24, 2015
    24
    @maskerTUI 我的 想法是 能不能 借助 有外网 IP 的 vps 中转一下,让内网主动连接 vps 映射端口。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    25
    @odirus 校内能联网的那台主机环境需要 windows ,而且它本身已经是个虚拟机(vmware,1 核, 512m 内存)了,所以不能再做虚拟化了。这个 ssh 反向之前考虑过的,不过条件不符合所以做不了。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    26
    @imlonghao 目前就是用着 ngrok ,不过稳定性不怎么好
    harry890829
    harry890829
    Nov 24, 2015
    27
    我们这边是服务器外网客户端内网的解决办法,和你这个还不一样,你是双内网啊,花生壳?
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    28
    @Sullivan 我也是这样想的,不过缺具体的方案
    Sullivan
    Sullivan
    Nov 24, 2015
    29
    @maskerTUI 试过 自己搭建 ngrok 么? 自己搭建的也不稳定吗? 我这的内网主机也是 win 的 但是是 物理机,非虚拟机,能够访问外网(之前被用来做个 绕过上网验证的跳板),快毕业了,也想继续享用校内资源~
    xmoiduts
    xmoiduts
    Nov 24, 2015
    30
    试过 ssserver ,能接到外网发来的请求,外网连不了校内的网。
    odirus
    odirus
    Nov 24, 2015
    31
    @maskerTUI 你的配置其实够了,你可以通过这个平台( daocloud )在你的 Windows 上面安装一个 docker ,目的是能够随时管理(启动、重启等)你的所有容器。

    PS :我自己也是没有实体机的,我也是在虚拟机里面虚拟的东西,你自己试试吧。
    datocp
    datocp
    Nov 24, 2015❤️2
    32
    vps 上的客户端
    socat -d -d -d tcp-l:80,reuseaddr,bind=0.0.0.0,fork tcp-l:8080,bind=0.0.0.0,reuseaddr,retry=10
    只有在 tcp 80 端口有请求时才会生成侦听 tcp 8080 端口。

    lan 内的服务器端
    socat -d -d -d -v tcp:vpsip:8080,forever,intervall=10,fork tcp:localhost:80
    将 lan 内的电脑不断尝试连接 vps 的 tcp 8080 端口,当连接成功后台会连到 localhost 提供的 tcp 80 端口应用。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    33
    @Sullivan ngrok 在人多的时候很不稳定,我试过很多次了,试过用洛杉矶,日本,香港,广州的服务器分别搭建 ngrok 服务,测试结果大概是 ngrok 一个映射最多承受十多个人同时访问,我现在都要设定定时任务检查 ngrok 有没有崩了。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    34
    @comicfans44 n2n 似乎只是把连接的电脑形成一个局域网,这个并不符合条件呀。
    mrliusg
    mrliusg
    Nov 24, 2015
    35
    https://github.com/localtunnel 同样的情况,用 localtunnel 已经稳定运行多个月,需要守护进程
    vh2h
    vh2h
    Nov 24, 2015 via Android
    36
    不用 vps 了,直接在 b 上装个 ss 的 win 服务端不行吗?想用的话装个 ss 客户端就行了,反正是轻量级的东西。
    comicfans44
    comicfans44
    Nov 24, 2015
    37
    使用 n2n 默认工作模式是连接成局域网(不收发其他网卡的包),但是也可以与其他网卡互联,就像真实网卡一样(-r Enable packet forwarding through n2n community )。
    鉴于你后面描述的这种使用场景, n2n 可能比较麻烦, abcd 可以这样操作:
    机器 b 上运行 ssh 客户端(xshell 什么的)连接 vps (c)并打开反向代理,远程端口(在 vps 上监听)就是 d 访问 c 的端口,本地端口转发到 a 的 web 端口即可,这样只需要 b 上运行一个 ssh 客户端即可
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    38
    @vh2h b 是局域网的机子
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    39
    @datocp 这是个方法,谢谢
    msg7086
    msg7086
    Nov 24, 2015 via Android
    40
    你们确定 windows 上不能运行 ssh ?
    chineselittleboy
    chineselittleboy
    Nov 24, 2015
    41
    @odirus 求教程
    ultimate010
    ultimate010
    Nov 24, 2015
    42
    自己阿里云搭建的 ngrok ,效果好。
    kyze8439690
    kyze8439690
    Nov 24, 2015
    43
    ngrok 是开源的啊,找一台国内的 vps ,运行 ngrok ,只是要花流量费。
    zonghua
    zonghua
    Nov 24, 2015❤️2
    44
    @kyze8439690
    ququ 的新玩具, node.js 实现的内网穿透

    https://imququ.com/post/web-proxy.html
    popu111
    popu111
    Nov 24, 2015 via Android
    45
    要搞 VPN 的话论 softether VPN azure 的好用之处。
    maskerTUI
    maskerTUI
    OP
    Nov 24, 2015
    46
    @zonghua 谢谢,这个不错
    xierch
    xierch
    Nov 24, 2015
    47
    Windows 也可以用 ssh -R 啦..
    可以用 PuTTY 的 Plink ,也可以用 Cygwin 的 ssh
    vibbow
    vibbow
    Nov 25, 2015
    48
    @maskerTUI ssh server 和 ssh client 在 windows 下也都有的啊。
    lovedboy
    lovedboy
    Feb 29, 2016
    49
    flynaj
    flynaj
    Jul 10, 2016
    50
    @maskerTUI windows 下的 ssh 服务端跟客户端,支持流量混淆, https://www.bitvise.com/getting-started
    binaryer
    binaryer
    Sep 9, 2016
    51
    https://vpip.net/?from=v2ex

    轻量级内网穿透工具,直接转发 ip 包
    FW36
    FW36
    Feb 24, 2017
    52
    http://blog.csdn.net/u014762921/article/details/50976130?locationNum=2&fps=1 包你满意,我是成功,需要一台 VPS 中继。
    lijy0717
    lijy0717
    May 26, 2017
    53
    现在应该可以用 kcptun 了吧. 速度是没问题的. 问题在于 ISP 会封杀你的 udp 流量.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2378 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
    ♥ Do have faith in what you're doing.