如何远程访问办公室电脑(过年工作不打烊),亲测有效稳定

前言

让我们随时随地访问办公室的电脑,甚至只需要一部手机,办公不限制时间,地点,程序员也不用苦恼的去装环境,软件。
让我们高效率的远程协作开发。
请添加图片描述
我司电脑网络处于局域网中,有些公司路由器的wan端口是公网ip的话会更方便一点,那么,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:注意注意注意!!!有些牌子的路由器管理界面,设置完毕了你会发现并没有生效,原因是你填写完毕之后一定要【保存和应用】,有些牌子可能显示的【启动】,那么点击相应的按钮就行了

二丶wan端口非公网ip

说明
外网访问内网,和刚刚的方式差不多,都需要一个中转站,现在比较流行的有某壳等等。但是呢,免费版的有流量限制和端口限制。
如果有钱的话就可以去购买他们的服务,作为一个苦逼的程序员,肯定还是要存着钱植发???

一般作为公司的话,要上线项目肯定是拥有服务器的,这时候我们就可以利用这台服务器搭建一个中转器服务器。

首先感谢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)
这里都不一一展开叙述了。

远程协作或者访问的方式还有很多种,这也不失为一种好办法,家里的电脑不用去装开发环境和开发软件,网吧也可以随时解决一些线上的问题,甚至有些不复杂的问题可以也可以用手机连接去解决。

问题

1).若卡住编译ngrok-server第七步怎么办?

下载FinalShell或者下载FileZilla Client
把下面三个文件放到云服务器ngrok/src目录下,替换响应的文件后,在执行步骤7和以及后续的操作

请添加图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>