内网穿透教程
出于跨公司联调需要,我们需准备能让对方公司访问到的URL。如果公司并不具备这个条件(或者拒绝开通环境),我们如何自行准备环境呢?
计划以内网穿透方法进行联调之前,请留意自己公司的管理制度里面有没有网络限制,以免倒霉被抓挨罚。如果能以遵守制度的方式将内网端口映射到公网,建议走公司的手续。
操作之前需要去搞一台VPS服务器。VPS有国内、国外的,优缺点分别如下:
地区 | 优势 | 缺点 | 代表厂商 |
---|---|---|---|
国内(不含香港) | 网速快 网络稳定 |
价格较贵,多数需月付 未经备案通常会禁止使用80、443、8080等端口,而备案耗时较长,会延误工作 |
阿里云、腾讯云等 |
香港 | 网速快 不需要备案,可直接使用80、443等端口 |
价格较贵 有被墙的风险 |
暂无推荐,可自行Google查询 |
国外 | 价格便宜,有些厂商甚至可按实际使用时间支付,随时买随时扔 不需要备案 |
网络不稳定,容易被墙 需要能付外币的信用卡 |
Vultr、DigitalOcean、Linode |
以Vultr为例。选择该厂商,有以下几个原因:
- 随时用,随时扔,按实际使用时间付费
- 可以使用微信、支付宝付款
不过该厂商服务器也有几个坑需要留意:
- 数据中心建议选东京或洛杉矶,这两个网络相对而言比较好
- 不要选择$2.5的机器,那个是纯IPv6访问,你可能连不上
- 由于中国人经常买这家服务器来翻墙,Vultr的服务器在国内访问效果并不太好,有时需要刷IP(买新机器然后删除旧机器)才能在国内连接上。服务器Ping不通,或者能Ping通但是SSH连接超时,这都是被墙的表现,再买一台新机器并删除旧的机器即可。另外有时候需要多刷几次。
为了方便,新机器操作系统选择Ubuntu。启动完成之后,先在公司Ping一下,没问题的话就可以用PuTTY等软件建立连接了。输入Vultr网站上面给你提供的服务器IP(端口22)、用户名和密码,然后
sudo nano /etc/ssh/sshd_config
将其中的GatewayPorts no
改成yes
,没找到的话就在文件末尾追加一行,保存。然后
sudo systemctl restart sshd
准备工作就做好了。
如果选择CentOS,它会默认开启防火墙,所以要确认一下防火墙状态,然后关闭防火墙或者开放待使用端口。
联调时先去下载PuTTY,启动,在里面输入服务器地址和端口(默认22),并且按下图进行设置
不要忘记点Add按钮。假如本机是http://172.18.106.3:8080
,服务器IP是198.13.60.108,你选择的端口是8080,那么登录成功后就可以通过http://198.13.60.108:8080
来访问自己的应用了。
因为是外国服务器,所以连接可能不太稳定,需要不定期检查连接,断了的话随时重新连。
如果需要域名,可以去国外的Namecheap上面购买个便宜的外国域名(注意:需要准备Visa/MasterCard信用卡)。如果还需要HTTPS,可以使用Let's Encrypt。国内域名也可以,除了需要实名认证以外通常也没什么问题(国内域名、国外服务器不用备案,国内服务器才需要备案)。