疫情当下,无法到公司上班,但公司的ERP、共享文件等又只能在内网访问,在家办公着实不方便。有什么办法在家里也能像在公司一样方便的使用公司的内网服务呢?
一般情况下公司网管会让你在公司电脑上装TeamViewer、向日葵之类的远程桌面软件,或者用QQ的远程协助功能来解决。但这些方法需要在控制端与被控端都安装相同的软件才能正常连接,而且被控端失联后你还要请同事帮忙在被控端打开软件再进行连接。隐私也是个大问题,你所有的操作在被控电脑上都是可以实时看到的。
frp内网穿透+Windows自带的远程桌面完全可以规避以上软件的不足,让你愉快的在家享受远程办公的乐趣。如果公司网络有公网IP,网管又乐意帮你做端口转发的话,其实也就用不到内网穿透了。本文介绍的就是以上条件都不具备的条件下如何自给自足,而且很流畅的实现远程办公。
话不多说,开干吧!
你所需的条件:
- 一台有公网IP的Linux服务器
安装frp服务端软件
下载frp软件包到服务器
wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz
解压软件包
tar -zxvf frp_0.42.0_linux_amd64.tar.gz
从服务器删除刚刚下载的软件包
rm -f frp_0.42.0_linux_amd64.tar.gz
移动已解压的软件包文件夹到服务器etc文件夹下,并将文件夹重命名为frp
mv tar -zxvf frp_0.42.0_linux_amd64 /etc/frp
frps服务的配置
编辑frps配置配置文件
vi /etc/frp/frps.ini
内容修改如下:
[common]
bind_port = 7000 #frps服务监听端口
vhost_http_port = 8080 #如果客户端有http服务,用serverip:8080访问客户端的http服务
subdomain_host = sixdian.com #如果希望用域名访问客户端上的http服务则设置你自己的顶级域名地址,子域名在客户端设置
dashboard_port = 7500 #设置访问frps仪表板的端口
dashboard_user = username #设置访问仪表板的用户名
dashboard_pwd = ******** #设置访问仪表板的密码
token = ****** #设置连接服务端与客户端所使用的令牌
max_pool_count = 5
设置frps服务开机启动
新建systemctl配置文件
vi /etc/systemd/system/frps.service
配置文件写入以下内容,并保存
[Unit]
Description=frps service
After=network.target network-online.target syslog.target
Wants=network.target network-online.target
[Service]
Type=simple
ExecStart=/etc/frp/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
启动frps服务
systemctl start frps
让frps开机启动
systemctl enable frps
Windows客户端远程桌面的配置
Windows 设置-系统-远程桌面-启用远程桌面
下载frp的Windows版到本地
最新版地址:
https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_windows_amd64.zip
将下载的软件包解压,并将解压后文件夹内的文件复制到刚刚新建新的位于D盘的frp文件夹内
编辑配置文件frpc.ini为以下内容,并保存
[common]
server_addr = test.sixdian.com #设置你的服务器ip地址或已解析到服务器的域名
server_port = 7000 #设置你远端服务器frps服务的监听端口
token = ******** #设置你远端服务器frps服务的令牌
tls_enable = true #需要加密的话设置此项
pool_count = 1
[HP ProBook 430 G1 rdp] #方括号内随便写,会在frps服务的仪表板内显示,方便识别
type = tcp #用tcp协议与frps服务通信
local_ip = 127.0.0.1 #本机IP地址
local_port = 3389 #本地Windows远程桌面默认的服务端口
remote_port = 12345 #你frps服务端已开放的端口,登录远程桌面使用此端口
use_compression = true
[HP ProBook 430 G1 rdp-udp] #方括号内随便写,会在frps服务的仪表板内显示,方便识别
type = udp #用udp协议与frps服务通信,需frps服务器防火墙开启通信端口的udp协议
local_ip = 127.0.0.1 #本机IP地址
local_port = 3389 #本地Windows远程桌面默认的服务端口
remote_port = 12345 #你frps服务端已开放的端口,登录远程桌面使用此端口
use_compression = true
用WinSW将frpc注册为Windows服务,实现开机后台启动
下载WinSW,并把下载下来的WinSW-x64.exe放到frp文件夹下,并将文件名称修改为"winsw-frpc"
最新版地址:
https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW-x64.exe
在frp文件夹内新建WinSW的配置文件,名为"winsw-frpc.xml"
编辑winsw-frpc.xlm文件内容为:
<service>
<id>frpc</id>
<name>frpc</name>
<description>frpc remote control</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<logmode>reset</logmode>
</service>
开打cmd终端:
winsw-frpc install
winsw-frpc start
这样就会把frpc程序注册为你Windows的系统服务,在你启动Windows的时候自动开启服务
按下面的设置,将frpc服务设置为失败后重启,这样只要你的服务器不宕机就不用怕被控端失联了。
mstsc
注:我家里网络有公网IP,我把frps服务搭建在我的软路由上面,所以我只需要连接我路由器的IP地址就可以了。
End!