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 install
和frpc start
命令便可將frpc安裝爲系統服務。
win+r後經過services.msc
進入到服務列表頁面找到frp服務。能夠操做啓動、關閉服務,雙擊設置frp服務屬性。
1.把啓動類型改爲自動,這樣能夠實現自動啓動。
2.點擊恢復tab切,把裏面失敗操做都選擇爲從新啓動服務,以保證frpc在鏈接失敗後自動嘗試從新鏈接
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(安全)選項
勾選 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 」 報錯
解決辦法是:
在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