在windows上使用VNC遠(yuǎn)程連接linux桌面
背景
我的工作主力機(jī)是一臺(tái)安裝了archlinux單系統(tǒng)的xps15-9500,直播機(jī)是組裝的windows 10臺(tái)式機(jī),由于linux上沒有成熟能用的面捕,再加上筆記本的性能限制,在obs推流時(shí),我的IDEA會(huì)變得很卡,我?guī)缀鯚o法流暢的使用這臺(tái)筆記本直播碼代碼。
我長達(dá)十多年的linux桌面使用,讓我無法適應(yīng)在windows下的開發(fā)和工作,主要有以下原因:
難用的命令行——cmd、powershell、cmder又或者是git bash,均無法滿足我的需求。
過低的自由度——無法自定義快捷鍵,就算有第三方軟件,也無法和linux相比,不是一個(gè)等級(jí)的。
可選的方案
WSL2是一個(gè)解決方案,但是,我需要的不僅僅是一個(gè)命令行,我需要一個(gè)高自由度的桌面和系統(tǒng),所以如果能在windows上遠(yuǎn)程連接到linux桌面去編寫代碼就太好了。
我很久之前的上司是在虛擬機(jī)里安裝linux來實(shí)現(xiàn)的,但是虛擬機(jī)會(huì)有不小的性能損失,無法最大化利用宿主機(jī)性能。
嘗試
遠(yuǎn)程連接到linux機(jī)器的一種方式是ssh,所以我搜索了通過ssh運(yùn)行圖形界面的一些資料。
大多是在ssh連接后,執(zhí)行startx命令,我的筆記本在執(zhí)行startx命令時(shí)報(bào)了各種錯(cuò)誤,我也沒有搜索到相關(guān)的解決方案。在搜索資料的過程中,VNC這個(gè)詞出現(xiàn)的頻率很高,VNC(Virtual Network Computing)是一個(gè)跨平臺(tái)遠(yuǎn)程連接工具,似乎是可以實(shí)現(xiàn)我的需求的。
VNC
1. 安裝
vnc首先需要一個(gè)server,在arch中使用以下命令安裝vnc應(yīng)用
sudo pacman -S tigervnc
2. 配置
新增vnc server的相關(guān)配置:
~/.vnc/config
session=lxqt
geometry=1920x1080
localhost
alwaysshared
session表示窗口管理器(window manager),geometry是分辨率,localhost表示只能從localhost訪問。
我為了偷懶,將localhost配置去掉了,這樣可以直接在局域網(wǎng)中連接這臺(tái)電腦,而不用通過ssh轉(zhuǎn)發(fā)。
vnc連接需要一個(gè)密碼,通過 vncpasswd命令創(chuàng)建一個(gè)密碼。
還需要在 /etc/tigervnc/vncserver.users 文件中配置一下用戶和端口。
3. 啟動(dòng)和連接
啟動(dòng)服務(wù) systemctl start vncserver@:1
windows上安裝vnc客戶端,我這里使用的是realvnc,界面如下

輸入之前命令設(shè)置的密碼,連接后界面如下:

linux中的快捷鍵也能夠無沖突使用,界面也幾乎感覺不到延遲,簡直完美。
總結(jié)
本文介紹了如何在windows上遠(yuǎn)程連接linux編寫代碼的方案,希望能對(duì)有類似需求的小伙伴有所幫助。
使用linux桌面的人本就很少,而且很需要折騰,再加上寫代碼是一件枯燥的事情,估計(jì)不會(huì)有人像我一樣開個(gè)live2d模型直播寫代碼吧。