结论:请观看本文前50行,即可搞定。后边的请忽略。
前言
为了科研,祖国的技术人员突破国内外一道道阻拦,求取真经。
对知识和真理的热爱,任什么艰难险阻也无法阻挡前进的脚步!
科技
结论:请观看本文前50行,即可搞定。后边的请忽略。
前言
为了科研,祖国的技术人员突破国内外一道道阻拦,求取真经。
对知识和真理的热爱,任什么艰难险阻也无法阻挡前进的脚步!
科技强国。
内网穿透
本文假设题主在国内出差,公司内部局域网有一台电脑W,可以访问外网。题主有一台云服务器S,有公网IP(2.2.2.2)。下面阐述一下,如何借由S访问W的资源。
网络示意图:
我们看到,难点是没有公网的局域网电脑W,在网络上没有办法被定位到。所以,需要用到 服务器 - 客户端 的通讯方式,让有公网IP的服务器S,将访问内容转发到特定的客户端。而这个客户端只需要能能够与服务器通讯上就可以了。
软件来了
既然需要一个 server-client 的通讯,就需要这么一款软件。示意图如下。
是的,你们猜到了,要推荐软件了。
gost - GO Simple Tunnel GO语言实现的安全隧道
https://github.com/ginuerzh/gost
功能特性有这么长一列:
多端口监听
可设置转发代理,支持多级转发(代理链)
支持标准HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5代理协议
Web代理支持探测防御
SOCKS5代理支持TLS协商加密
支持多种隧道类型
Tunnel UDP over TCP
本地/远程TCP/UDP端口转发
TCP/UDP透明代理
支持Shadowsocks(TCP/UDP)协议
支持SNI代理
权限控制
负载均衡
路由控制
DNS解析和代理
TUN/TAP设备
怎么选择,内网穿透使用哪个方式?文档都给清楚了。我们只需一个端口转发功能,GOST提供的远程端口转发功能由好几种。
用法
端口转发服务节点的配置与普通的代理节点有所不同:
scheme - 端口转发模式, 本地端口转发: , ; 远程端口转发: , ; 转发隧道: , 等传输类型。
[bind_address]:port - 本地/远程绑定地址。
[host]:hostport[,[host]:hostport] - (可选, 2.6+) 目标访问地址,支持以逗号分割的多地址形式。
参数说明
- (可选, 2.8+) 也可以通过此参数来指定目标地址。
- 指定节点选择策略, - 轮询, - 随机, - 自上而下。默认值为。
- (2.8.1+) 指定节点连接的最大失败次数,当与一个节点建立连接失败次数超过此设定值时,此节点会被标记为死亡节点(Dead),死亡节点不会被选择使用。默认值为1。
- (2.8.1+) 指定死亡节点的超时时间,当一个节点被标记为死亡节点后,在此设定的时间间隔内不会被选择使用,超过此设定时间间隔后,会再次参与节点选择。默认为30秒。
SSH端口转发模式
当代理链末端(最后一个-F参数)为类型时,GOST会直接使用SSH的远程端口转发功能:
服务端可以是标准的SSH程序,也可以是GOST的SSH转发模式:
scheme必须是。
TCP远程端口转发
将目标TCP端口B映射到本地TCP端口A,所有到端口B上的数据会被转发到端口A。此功能类似于SSH的远程端口转发功能。
将172.24.10.1:2222上的数据(通过代理链)转发到192.168.1.1:22上。
结语
如果我没猜错,你要的就是这个。
我都用了好些年了,稳定高效,全程开源,代码修改很!方!便!
Happy coding :-)
【本文由 @程序员小助手 发布,持续分享编程故事,欢迎关注】