我曾以為在我的M1 Mac mini 上搞開(kāi)發(fā)足夠夠了灌旧。但實(shí)際上吱型,由于操作系統(tǒng)或者芯片架構(gòu)的原因握巢,有些實(shí)驗(yàn)是不能測(cè)試的碰辅,比如用C寫(xiě)共享內(nèi)存(教訓(xùn)是浪費(fèi)很多時(shí)間)窿吩。
有意思的是我的室友有一臺(tái)很強(qiáng)的主機(jī):AMD 5900x + 32G運(yùn)行內(nèi)存剂公。在編程開(kāi)發(fā)中最重要的就這兩個(gè)指標(biāo)啦起便。我于是萌生用我的Mac mini 連接他的windows下的ubuntu遠(yuǎn)程開(kāi)發(fā)念脯。
如果你有一臺(tái)閑置的電腦 Let's go!
校園網(wǎng)是一個(gè)局域網(wǎng)狞洋,允許通過(guò)ssh連接到其他主機(jī)。通過(guò)windows代理ubuntu的端口來(lái)實(shí)現(xiàn)绿店。
教程開(kāi)始:
第一步吉懊,配置ubuntu
Ubuntu安裝教程如果你不會(huì)那應(yīng)該再去網(wǎng)上搜搜
在windows的ubuntu下操作:
首先更改apt源,這里建議阿里的假勿,官網(wǎng): http://mirrors.aliyun.com
然后卸載并重新安裝ssh-server借嗽,因?yàn)槁?tīng)說(shuō)自帶的不好用
apt remove openssh-server
apt install openssh-server
然后改監(jiān)聽(tīng)端口
vim /etc/ssh/sshd_config
取消注釋?zhuān)⒏亩丝跒?222 (也可以按照你喜歡的,能記住就好)
我們姑且把端口號(hào)叫g(shù)gport (隨便取的名字转培,為了后面能夠引用)
之所以要改端口恶导,是因?yàn)閡buntu的22可能會(huì)有其他用。理論上不改也行浸须,我猜惨寿。
然后強(qiáng)58行這句取消注釋?zhuān)偈謩?dòng)輸入59這一行
首行帶井號(hào)的就是注釋?zhuān)唧w意思通過(guò)直譯不難理解
按ESC鍵邦泄,鍵盤(pán)輸入:wq
保存退出
然后重啟ssh服務(wù),使之生效 service ssh restart
到目前裂垦,其他電腦依舊連不到這臺(tái)windows的ubuntu虎韵,需要設(shè)置一個(gè)代理
還是在ubuntu環(huán)境,輸入apt install net-tools
然后輸入ifconfig
缸废,注意紅框的內(nèi)容
可能我同學(xué)的主機(jī)有連接網(wǎng)線包蓝,而且還能同時(shí)用無(wú)線wifi,所以會(huì)有兩個(gè)
所以隨便試試企量,我從小到大試测萎,第一個(gè)就成功了,也有可能兩個(gè)都可以届巩,但是硅瞧,一定要選形如192.168.*.*這樣的inet
把記住的這個(gè)ipv4地址姑且叫做 ggip(隨便取的名字,為了后面能夠引用)
接下來(lái)的操作在Windows上運(yùn)行:
管理員權(quán)限打開(kāi)PowerShell恕汇,將windows的2222端口轉(zhuǎn)發(fā)到ubuntu腕唧,輸入:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=[ggip] connectport=[ggport]
輸入的時(shí)候記得替換[ggip] [ggport] 為上面提到的值,跟前面的0.0.0.0一樣不要帶中括號(hào)[]
然后在windows防火墻開(kāi)啟入站規(guī)則瘾英,輸入命令:
netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222
坦白地講枣接,我不喜歡Window的Shell,難用缺谴。不過(guò)知道能復(fù)制粘貼就可以湊合用但惶。
然后還是在Powershell中,查看你的IP地址湿蛔,輸入:
ipconfig
區(qū)別于Linux下的ifconfig
找到你的ip地址膀曾,我的是10.開(kāi)頭的,現(xiàn)在不方便截圖
然后局域網(wǎng)內(nèi)其他電腦阳啥,可以通過(guò)ssh連接
ssh username@ip -p 2222
- username替換為ubuntu的用戶名
- ip替換為Windows局域網(wǎng)的ip添谊,在我這是10.開(kāi)頭的
- 后面要輸入ubuntu用戶的密碼
通過(guò)rsa ssh來(lái)無(wú)密碼登陸
在這里我簡(jiǎn)要的說(shuō)一下如何操作
首先在要訪問(wèn)ubuntu的機(jī)器里,用戶目錄下如果沒(méi)有隱藏文件夾.ssh的話察迟,執(zhí)行:
ssh-keygen -t rsa
一路回車(chē)
然后終端進(jìn)入~/.ssh文件夾下斩狱,用scp將公鑰(有.pub后綴的文件)拷貝到裝有ubuntu的windows里
scp -P 2222 ./id_rsa.pub username@ip:/home/
輸入密碼,如果有傳輸過(guò)程卷拘,比如網(wǎng)速啥的喊废,說(shuō)明成功祝高,沒(méi)有的話自己檢查一下
然后ubuntu終端內(nèi)栗弟,cd /home
然后將.pub文件追加到當(dāng)前用戶家目錄的 .ssh/
cat id_rsa.pub >> ~/.ssh/authorized_keys
然后就是VScode遠(yuǎn)程連接其他windows的WSL(Ubuntu)
首先安裝微軟自己出品的插件 Remote - SSH
然后點(diǎn)這
彈出來(lái)一個(gè)框,選第一個(gè)就好了
然后按照這個(gè)格式填個(gè)配置
// 模版
Host Name
Hostname [填ip地址]
User [填用戶名]
Port [填端口]
IdentityFile [私鑰文件]
// 比如我的
Host kun
Hostname 10.117.66.66
User root
Port 2222
IdentityFile "/Users/name/.ssh/id_rsa-remote-ssh"
私鑰文件就是在家目錄~下工闺,沒(méi)有.pub后綴的文件乍赫,注意跟你上傳到ubuntu的公鑰要互相匹配
然后點(diǎn)上面vscode.png里面 右邊中間的有+號(hào)的按鈕就可以連接啦瓣蛀!
有問(wèn)題可以在評(píng)論區(qū)問(wèn)我。