新冠疫情严重,居家远程办公

不平凡的庚子鼠年

2020年庚子鼠年是个不平凡的新年,人说每逢庚子年都会发生一些大事,果否则这年的新年竟然发生大规模的传染病毒。
这个新年过的比较惊心动魄😂,惟一点比较好的是,如今啥都变的安静了,路上车也少了,人也少了,仿佛回到了木心诗里写的那样一切变慢了。php

虽然在家哪也不去的"隔离"了十几天,可是随着日子的增长,你的房贷,车贷,花呗还款这些仍是会到来的,你不上班就木有收入了,公司也会陷入发展停滞。
这些都是咱们不肯看到的。做为互联网公司相比传统公司的好处,咱们能够不用接触人,线上远程的办公,至少可让工做继续进行。linux

远程办公

咱们几乎全部公司的办公系统都是在公司内网的,想要在家办公,就须要最起码链接到公司内网,或者操做你的公司电脑。这里我以前用过两个软件
teamview向日葵。这两个软件能够轻松的实如今家的电脑控制公司的电脑,可是缺点仍是不少,好比操做卡顿不流畅,并且会常常掉线,须要重连。
我如今使用的内网穿透工具frp,这个工具可让我可使用微软的远程桌面,公司电脑是windows的,微软的远程桌面流畅度高不少,就像在本地操做电脑同样。
今天主要介绍本地mac系统电脑经过内网穿透远程桌面到windows电脑。git

frp 内网穿透工具,项目地址,能够经过这里下载release的版本。它支持tcp,udp,http,https协议。
这里主要就两个东西,一个服务端,一个客户端。服务端须要放在公网服务器,客户端直接装内网的电脑上。其主要原理就是内网客户端发送内网数据到公网服务端,你的本地
电脑在经过访问公网服务端的数据获取到内网的电脑数据。感受公网服务端就像一个代理服务器。github

服务端搭建

通常公网服务器的系统都是linux64位的,这里须要下载frp的linux64位版,主要文件frps, frps.ini, frps_full.ini。
1.配置服务端配置文件frps.ini,golang

[common]
  bind_port = 7066
  vhost_http_port = 8089

bind_port为客户端与服务端进行通讯的端口,vhost_http_port为服务端http服务的端口。其它更丰富的配置可参考frps_full.ini和项目帮助文档。 web

2.启动服务
而后经过 ./frps -c frps.ini命令便可启动服务端 vim

3.设置开机自动启动
上一步中的frps命令会占据了整个命令窗口,因此接下来要考虑如何让它在后台运行而且开机自启,经过vim /etc/systemd/system/frps.service命令新建文件并写入如下内容,windows

[Unit]
  Description=frps daemon
  After=syslog.target  network.target
  Wants=network.target
  
  [Service]
  Type=simple
  ExecStart=/usr/loal/frp/frps -c /usr/local/frp/frps.ini
  Restart= always
  RestartSec=1min
  
  [Install]
  WantedBy=multi-user.target

这里的ExecStart须要根据本身的状况设置本身的地址,而后使用systemctl start frps便可启动frps, 用systemctl enable frps便可将frps设置为开机启动。
这样启动后能够经过查看端口是否监听判断是否启动成功,查看端口监听状态命令netstat -ano | grep 7066,我绑定的端口是7066。
注意:若是你的服务器是阿里云的话,须要首先把系统的端口打开,再到阿里云安全组策略中打开端口,否则你的服务端将会访问不到。例举个centos7开放端口的命令,centos6与7不同。centos

firewall-cmd --zone=public --add-port=7066/tcp --permanent
  firewall-cmd --reload

客户端搭建

公司的电脑大部分系统是windows的,可能也有mac的,可是frp没有mac的版的安装包,不过你能够试一试在mac下源码编译,源码是golang的。
主要文件frpc, frpc.ini, frpc_full.ini。
1.配置客户端文件frpc.ini.安全

[common]
  server_addr = X.X.X.X
  server_port = 7066
  
  [rdp]
  type = tcp
  local_ip = 0.0.0.0
  local_port = 3389
  remote_port = 6000
  
  [web]
  type = http
  local_port = 8080
  custom_domains = xxx.com

sever_addr配置为公网电脑的IP,server_port与frps.ini中的bind_port一致。rdp为远程桌面的配置,windows的远程桌面默认端口为3389,web为http通讯的配置。web中的custom_domains为绑定到公网IP的域名。
同时这里能够配置多种端口,以及多个内网的电脑端口。如

[ssh]
  type = tcp
  local_ip = 192.168.1.100
  local_port = 22
  remote_port = 2255

这样就实现了能够在家ssh链接到内网的一台服务器上。
注意:若是你的服务器是阿里云的话,须要把remote_port的端口在系统里打开,再到阿里云安全组策略中打开端口,remote_port是指使用云服务器哪一个端口访问内网的电脑端口。

2.启动客户端
双击frpc.exe或者用命令frpc -c frpc.ini便可启动客户端,建议使用命令。若是配置一切顺利的话,此时你会在客户端这看到链接成功,服务端那也会看到有链接接入。

3.设置为windows服务同时开机自动启动
借助winsw工具能够将frpc注册为windows系统中的服务。
下载winsw最新版,地址 能够将其重命名为winsw.exe, 将该文件和frpc.exe放在一块儿,而后新建winsw.xml写入如下内容

<service>
      <id>frp</id>
      <name>frp</name>
      <description>用frp内网穿透</description>
      <executable>frpc</executable>
      <arguments>-c frpc.ini</arguments>
      <logmode>reset</logmode>
  </service>

而后使用winsw installfrpc start命令便可将frpc安装为系统服务。
win+r后经过services.msc进入到服务列表页面找到frp服务。能够操做启动、关闭服务,双击设置frp服务属性。
1.把启动类型改为自动,这样能够实现自动启动。
2.点击恢复tab切,把里面失败操做都选择为从新启动服务,以保证frpc在链接失败后自动尝试从新链接

Mac系统远程桌面到Windows系统

1 Mac须要下载远程登陆控制软件
推荐微软的Microsoft Remote Desktop For Mac,下载链接

2 安装完成后打开软件,输入外网服务器的ip和映射内网服务的端口号,x.x.x.x:6000,点击connect。

3 修复问题
若是出现The certificate or associated chain is not valid报错
在这里插入图片描述
解决办法是:
1 点击软件的 Preferences(首选项)
在这里插入图片描述
2 选择Security(安全)选项
image
勾选 Always connect, enven if authentication fails
以后再点击connect进行连接

若是出现“ Remote Desktop Connection cannot verify the identity of the computer that you want to connect to. Try reconnecting to the Windows-based computer, or contact our administrator ” 报错
image
解决办法是:
在Mac上提示此错误。这时候须要在Windows电脑端进行设置,(最好此时先用向日葵链接上内网电脑设置)须要在经过组策略个性远程桌面服务的安装设置。
开始->运行,输入gpedit.msc,打开组策略编辑器
进入Computer Configuration->Administrative Templates->Windows Components->Remote Desktop Services->Remote Dekstop Session Host->Security
(计算机配置->管理模版->windows组件->远程桌面服务->远程会话主机->安全)
打开"Require use of specific security layer for remote desktop (RDP) connection"的设置,将其设置为Enabled,而且在Options中将Security Layer设置为RDP。
(打开“远程(RDP)链接要求使用指定的安全层”的设置,将其设置为“已启用”,并在选项中将安全层设置为RDP)
在这里插入图片描述 以后再点击connect进行链接,就会看到远程界面了。ok

相关文章
相关标签/搜索