有没有稳定的网络穿透方案? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maskerTUI
V2EX    问与答

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

  •  
  •   maskerTUI 2015-11-24 10:13:54 +08:00 14411 次点击
    这是一个创建于 3618 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求:从校外访问校内的一个网站。
    没有学校的路由权限,所以做不了 dmz,vpn 之类的。
    现在用着 ngrok,但是在人数多的时候很容易断,稳定性不尽人意。
    问问 V 友有没有稳定的穿透 /建隧道的方案?
    求轮子
    第 1 条附言    2015-11-24 12:47:07 +08:00
    补充一下网络环境的情况: a,b,c,d 四台电脑, a,b 为校内局域网的, a 是不接外网的目标网站, b 是校内接了外网的电脑(windows), c 是有公网 ip 的一台 vps , d 是我,我(d)想通过访问 c 的时候就能直接访问到 a 的网站,求这样的一样轮子,最好 d 是不需要借助客户端的,因为我还要把这个通道发布给熟悉的人用。
    目前使用的方案, b 用 ngrok 把 a 的 80 端口映射到 c 去。缺点:不稳定。
    53 条回复    2017-05-26 16:14:16 +08:00
    TuxcraFt
        1
    TuxcraFt  
       2015-11-24 10:31:54 +08:00
    找一个校内的肉鸡…… (逃
    Sullivan
        2
    Sullivan  
       2015-11-24 10:34:52 +08:00
    同样需求+1
    Sullivan
        3
    Sullivan  
       2015-11-24 10:37:32 +08:00
    不知道 能不能 有 ssh 那样的反向连接没有。
    maskerTUI
        4
    maskerTUI  
    OP
       2015-11-24 10:38:01 +08:00
    @TuxcraFt 这个......我就算搞下来学校的某台肉鸡也不敢公开啊,我还没毕业呢
    maskerTUI
        5
    maskerTUI  
    OP
       2015-11-24 10:47:58 +08:00
    @Sullivan 内网的跳板是个 windows ,用不了 ssh 。
    Sullivan
        6
    Sullivan  
       2015-11-24 10:49:49 +08:00
    @maskerTUI 昂,我是说类似的工具~
    maskerTUI
        7
    maskerTUI  
    OP
       2015-11-24 11:04:27 +08:00
    @Sullivan 目前找到的一些方案都一般般,花生壳限制太多,狗洞要两端安装客户端, ssh 需要 linux , teamviewer vpn 要客户端,看来是要逼自己造轮子的节奏。
    odirus
        8
    odirus  
       2015-11-24 11:12:20 +08:00
    @maskerTUI 请问花生壳能为内网主机提供一个在外网可以访问的域名么,并且可以访问该域名(内网主机)的非 80 端口?
    loveyu
        9
    loveyu  
       2015-11-24 11:13:38 +08:00
    之前用 ngork ,后来不行了
    odirus
        10
    odirus  
       2015-11-24 11:13:50 +08:00
    @maskerTUI 如果你能访问内网主机的某个端口,也许我能帮到你
    comicfans44
        11
    comicfans44  
       2015-11-24 11:17:02 +08:00
    n2n
    maskerTUI
        12
    maskerTUI  
    OP
       2015-11-24 11:30:14 +08:00 via Android
    @odirus 有内网主机,求轮子
    GeekTest
        13
    GeekTest  
       2015-11-24 11:30:31 +08:00 via Android
    就没人用 vpn 么。 anyconnect 挺稳定 shadowvpn 也不错
    maskerTUI
        14
    maskerTUI  
    OP
       2015-11-24 11:32:17 +08:00 via Android
    @odirus 有内网机子,但是没有映射到公网的
    odirus
        15
    odirus  
       2015-11-24 11:34:23 +08:00
    @maskerTUI 别着急,我在实验
    odirus
        16
    odirus  
       2015-11-24 11:35:13 +08:00
    @maskerTUI 你内网有机子,外网有机子的话就好办了。
    maskerTUI
        17
    maskerTUI  
    OP
       2015-11-24 11:36:32 +08:00 via Android
    @odirus 可以提供一个二级域名,非 80 好像也可以,不知道有限制,有些还是收费的。
    maskerTUI
        18
    maskerTUI  
    OP
       2015-11-24 11:38:06 +08:00 via Android
    @odirus 外网机子可以用 vps 这个不是问题
    odirus
        19
    odirus  
       2015-11-24 11:46:08 +08:00   1
    @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 镜像的话,可以留言,我可以做一个完整的教程。
    vs506
        20
    vs506  
       2015-11-24 11:55:05 +08:00
    yexm0
        21
    yexm0  
       2015-11-24 12:17:11 +08:00 via Android
    花生壳能为内网主机提供一个在外网可以访问的域名,不过价格真贵。
    imlonghao
        22
    imlonghao  
       2015-11-24 12:25:42 +08:00
    maskerTUI
        23
    maskerTUI  
    OP
       2015-11-24 12:27:28 +08:00
    @vs506 看了一下说明:
    免费用户(已到期用户)限速 10KB/s,可添加 3 个映射,映射 8 小时后失效需重新登录新建.
    付费用户不限速度,最快 1280KB/s,可添加 10 个映射,在 VIP 期间不会失效.
    还不如我自己搭建的 ngrok 服务呢
    Sullivan
        24
    Sullivan  
       2015-11-24 12:27:34 +08:00
    @maskerTUI 我的 想法是 能不能 借助 有外网 IP 的 vps 中转一下,让内网主动连接 vps 映射端口。
    maskerTUI
        25
    maskerTUI  
    OP
       2015-11-24 12:32:01 +08:00
    @odirus 校内能联网的那台主机环境需要 windows ,而且它本身已经是个虚拟机(vmware,1 核, 512m 内存)了,所以不能再做虚拟化了。这个 ssh 反向之前考虑过的,不过条件不符合所以做不了。
    maskerTUI
        26
    maskerTUI  
    OP
       2015-11-24 12:35:13 +08:00
    @imlonghao 目前就是用着 ngrok ,不过稳定性不怎么好
    harry890829
        27
    harry890829  
       2015-11-24 12:36:11 +08:00
    我们这边是服务器外网客户端内网的解决办法,和你这个还不一样,你是双内网啊,花生壳?
    maskerTUI
        28
    maskerTUI  
    OP
       2015-11-24 12:36:35 +08:00
    @Sullivan 我也是这样想的,不过缺具体的方案
    Sullivan
        29
    Sullivan  
       2015-11-24 12:40:22 +08:00
    @maskerTUI 试过 自己搭建 ngrok 么? 自己搭建的也不稳定吗? 我这的内网主机也是 win 的 但是是 物理机,非虚拟机,能够访问外网(之前被用来做个 绕过上网验证的跳板),快毕业了,也想继续享用校内资源~
    xmoiduts
        30
    xmoiduts  
       2015-11-24 12:42:00 +08:00
    试过 ssserver ,能接到外网发来的请求,外网连不了校内的网。
    odirus
        31
    odirus  
       2015-11-24 12:51:31 +08:00
    @maskerTUI 你的配置其实够了,你可以通过这个平台( daocloud )在你的 Windows 上面安装一个 docker ,目的是能够随时管理(启动、重启等)你的所有容器。

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

    https://imququ.com/post/web-proxy.html
    popu111
        45
    popu111  
       2015-11-24 17:33:52 +08:00 via Android
    要搞 VPN 的话论 softether VPN azure 的好用之处。
    maskerTUI
        46
    maskerTUI  
    OP
       2015-11-24 18:51:25 +08:00
    @zonghua 谢谢,这个不错
    xierch
        47
    xierch  
       2015-11-24 21:28:15 +08:00
    Windows 也可以用 ssh -R 啦..
    可以用 PuTTY 的 Plink ,也可以用 Cygwin 的 ssh
    vibbow
        48
    vibbow  
       2015-11-25 09:49:33 +08:00
    @maskerTUI ssh server 和 ssh client 在 windows 下也都有的啊。
    lovedboy
        49
    lovedboy  
       2016-02-29 22:44:28 +08:00
    flynaj
        50
    flynaj  
       2016-07-10 13:05:55 +08:00
    @maskerTUI windows 下的 ssh 服务端跟客户端,支持流量混淆, https://www.bitvise.com/getting-started
    binaryer
        51
    binaryer  
       2016-09-09 11:21:42 +08:00
    https://vpip.net/?from=v2ex

    轻量级内网穿透工具,直接转发 ip 包
    FW36
        52
    FW36  
       2017-02-24 23:24:17 +08:00
    http://blog.csdn.net/u014762921/article/details/50976130?locatiOnNum=2&fps=1 包你满意,我是成功,需要一台 VPS 中继。
    lijy0717
        53
    lijy0717  
       2017-05-26 16:14:16 +08:00
    现在应该可以用 kcptun 了吧. 速度是没问题的. 问题在于 ISP 会封杀你的 udp 流量.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3755 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:18 PVG 12:18 LAX 21:18 JFK 00:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86