赞
踩
让我们随时随地访问办公室的电脑,甚至只需要一部手机,办公不限制时间,地点,程序员也不用苦恼的去装环境,软件。
让我们高效率的远程协作开发。
我司电脑网络处于局域网中,有些公司路由器的wan端口是公网ip的话会更方便一点,那么,wan端口是公网ip如何访问?wan端口不是公网ip又如何解决?
step1丶登录路由管理界面
如何进入ip网关,查看路由器背面,写着有着管理地址或者网关的就是。
打开浏览器输入192.168.0.1
(以自己路由器上的地址为准)。输入管理账号和密码就可以进入啦。
以tplink路由器为例,就可以看到下面的界面
这里可以看到我们wan端口的ip是192.168开头的,典型的局域网。那么如何判断自己是公网ip并且能使用呢?有个简单的办法,一般如何这个ip和你百度搜索关键词【ip】,如果和wan端口ip一致的话就可以去使用。
note
:若不是公网ip直接看第二种方法
step2丶端口转发
点击左侧边栏【高级设置】->【地址转换】
这里可以看到我转换了两个地址,一个用于windows远程桌面访问,一个用于公司办公电脑搭建的http服务器。
点击新增就可以增加其他端口转换,我们来看一下如何添加,怎样填写
以windows远程桌面为例
预置设置:自定义
服务名称:rmtdp
(可以自定义,在规则范围内就行)
外部端口:16531
(填写一定要注意,不要填80
或者443
,一般这些都被占用或者禁用了)
内部端口:3389
(windows远程桌面一般都为3389
,如果你设置成其他端口了,修改为对应的端口就行了)
是否启用:启用
然后点击增加就行了!
这时就可以通过其他电脑,远程桌面连接,比如公网ip为 43.108.2.3
,那么结合刚才设置外部端口**16531
**,输入43.108.2.3:16531
就可以了
note
:注意注意注意!!!有些牌子的路由器管理界面,设置完毕了你会发现并没有生效,原因是你填写完毕之后一定要【保存和应用
】,有些牌子可能显示的【启动
】,那么点击相应的按钮就行了
说明
外网访问内网,和刚刚的方式差不多,都需要一个中转站
,现在比较流行的有某壳
等等。但是呢,免费版的有流量限制和端口限制。
如果有钱的话就可以去购买他们的服务,作为一个苦逼的程序员,肯定还是要存着钱植发???
一般作为公司的话,要上线项目肯定是拥有服务器的,这时候我们就可以利用这台服务器搭建一个中转器服务器。
首先感谢ngrok的所有开发者和版权所有者,开源了1.x版本。
ngrok是什么?简单理解就是中转器,分为两端,服务端(server
)和客户端(client
),服务端是要放在服务器上的,客户端放在公司电脑就行。
ngrok有免费版,下载就可以使用,但是呢,每次启动域名和端口都会变动,而且网速太慢,还有就是过段时间就会自动断掉,所以我们可以自己去搭建一个。
网速取决你云服务的带宽和公司的带宽。
官网地址:https://ngrok.com/
以阿里云的ecs,我这里装的Ubuntu18操作系统为例。
step1丶安装和运行中转器
打开电脑终端命令窗口
输入
ssh 用户名@阿里云ecs公网ip
回车,会提示输入密码。
step2丶然后安装必要的环境和库
1).安装go
ngrok基于go语言,所以要安装go环境
sudo apt install goalng
2).安装git
sudo apt install git
3).下载ngrok
git clone https://github.com/inconshreveable/ngrok.git
4).配置环境变量
cd
cd ngrok
export NGROK_DOMAIN="云服务器公网ip或者域名"
note
:ip或者域名主义不要加http或者https,使用域名的话要备案哦
5).生成自签名ssl证书
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
6). 替换证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
7).编译ngrok-server
cd ngrok
GOOS=linux GOARCH=arm
make release-server
note
:到这一步可能会报错卡住,因为在编译的时候,会下载一些依赖,这些依赖的地址在国外。如果大家下载不了的话,这里我在下面提供好了的编译好的server端,具体流程参照问题1
。
8).编译 ngrok-client(windwos)
GOOS=windows GOARCH=amd64
make release-client
编译好了之后
在ngrok/bin
目录生成sever端ngrokd
在ngrok/bin/windows_amd64
生成client端(windows)应用程序ngrok.exe
并将生成好的ngrok.exe
下载到公司电脑
9).启动server
在ngrok/bin
目录启动sever端ngrokd
cd /bin
nohup ./ngrokd -domain="云服务器公网ip或者域名" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
上面的数字代表端口,这个都可以改变的
note
:注意注意注意!!!ecs服务器对应的端口要开放
10)启动client
在第8步下载到公司电脑的ngrok.exe同级目录创建ngrok.cfg
配置文件
server_addr: "云服务器公网ip或者域名:4443"
trust_host_root_certs: false
tunnels:
rt:
remote_port: 8963
proto:
tcp: 3389
web:
remote_port: 8964
proto:
http: 7002
server_addr
和远端的tunnelAddr
端口一定要对应
rt|web
代表你的服务名,可以自定义
remote_port
代表远端端口
proto
代表服务
http|tcp
代表转发的方式和具体的端口号
启动client
ngrok.exe -config="ngrok.cfg" start rt web
如果看到下面的画面就代表成功啦!!!
复制Forwarding后面的地址tcp://xxxxx:8964
就可以用来访问啦
远程连接效果
http服务是一样的道理,就不展示了!!!
除了上面说的,我们还题有要解决的问题。
电脑长时间开机,会卡顿,重启之后,这时候客户端的命令需要要设置为开机自启动
。
还可以设置每天凌电脑开机自动重启。
但是这样电脑还是不能关机,只能重启,一旦公司没交电费,电脑关机就不行了。
这时若电脑主机的驱动支持的话,可以通过远端命令来实现开关机(wan端口要为公网ip),也可以通过BIOS设置为电脑通电自动开机,或者使用开机棒等等。
这里都不一一展开叙述了。
远程协作或者访问的方式还有很多种,这也不失为一种好办法,家里的电脑不用去装开发环境和开发软件,网吧也可以随时解决一些线上的问题,甚至有些不复杂的问题可以也可以用手机连接去解决。
1).若卡住编译ngrok-server第七步怎么办?
下载FinalShell或者下载FileZilla Client
把下面三个文件放到云服务器ngrok/src目录下,替换响应的文件后,在执行步骤7和以及后续的操作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。