需求
外網(wǎng) SSH 連接學(xué)校內(nèi)網(wǎng)的 Windows 科研電腦上的 linux 虛擬機(jī)
思路
學(xué)校網(wǎng)絡(luò)之外的外網(wǎng)機(jī)器 SSH 遠(yuǎn)程連接 內(nèi)網(wǎng)電腦對(duì)應(yīng)的外網(wǎng) IP,內(nèi)網(wǎng)電腦接受到外網(wǎng) SSH 連接請(qǐng)求,再通過(guò)虛擬機(jī)的 NAT 模式(端口轉(zhuǎn)發(fā)模式),即宿主 PC 機(jī)轉(zhuǎn)發(fā)外網(wǎng) SSH 請(qǐng)求到虛擬機(jī)對(duì)應(yīng)的端口號(hào),間接的訪問(wèn)虛擬機(jī)的 Linux。
prerequisite
有了思路,我們需要做的準(zhǔn)備
- VMware 的網(wǎng)絡(luò)連接選擇 NAT 模式—>達(dá)到轉(zhuǎn)發(fā) SSH 請(qǐng)求到虛擬機(jī)的效果
- 虛擬機(jī)要有對(duì)應(yīng)的 SSH 服務(wù)—>
sudo apt-get install openssh-server - 使用nat123達(dá)到內(nèi)網(wǎng)穿透
知識(shí)補(bǔ)充
學(xué)校內(nèi)網(wǎng)的 ip 實(shí)際上網(wǎng)絡(luò)經(jīng)過(guò)了很多中間層的映射,而這個(gè)映射很復(fù)雜的,學(xué)校也不可能告訴我們,所以不可以或者很難直接用內(nèi)網(wǎng) IP 映射成外網(wǎng) IP,進(jìn)而提供 SSH 服務(wù)。
但是我們可以使用工具,如 nat123、神卓互聯(lián)、花生殼等,將學(xué)校內(nèi)網(wǎng) IP 直接映射成外網(wǎng) IP
let’s start
1 設(shè)置 VMware
- 虛擬網(wǎng)絡(luò)編輯器

虛擬網(wǎng)絡(luò)編輯器
在 VMnet8 類型換成 NAT 模式
在進(jìn)行 NAT 設(shè)置之前,需要查看虛擬機(jī)的 IP,使用ifconfig
aliceyu@aliceyu-virtual-machine:~$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:14:cd:ad
inet addr:192.168.11.128 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: fe80::f557:95a2:e8bf:5b89/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9979 errors:0 dropped:0 overruns:0 frame:0
TX packets:2844 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8368432 (8.3 MB) TX bytes:201165 (201.1 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:789 errors:0 dropped:0 overruns:0 frame:0
TX packets:789 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63342 (63.3 KB) TX bytes:63342 (63.3 KB)
可以看到inet addr:192.168.11.128,這個(gè) IP 其實(shí)是內(nèi)網(wǎng) IP
-
設(shè)置 NAT
- 添加端口轉(zhuǎn)發(fā):

**屏幕快照 2019-06-26 下午 8.35.22**
- 設(shè)置端口轉(zhuǎn)發(fā)

到現(xiàn)在為止,Windows 宿主機(jī)已經(jīng)可以將請(qǐng)求通過(guò)虛擬機(jī)的 NAT 模式轉(zhuǎn)發(fā)到虛擬機(jī)了。
但是前提是虛擬機(jī)要支持 openssh-server。默認(rèn) linux 系統(tǒng)里是沒(méi)有的。
2 在虛擬機(jī)中下載 SSH 服務(wù)
1. 下載 openssh-server
打開(kāi) Ubuntu 的終端,輸入:
sudo apt-get install openssh-server
安裝完畢后 ssh 默認(rèn)已啟動(dòng)。可以使用下述命令查看是否有進(jìn)程在 22 端口上監(jiān)聽(tīng),即是否已啟動(dòng):
netstat -nat | grep 22
2. 允許 root 用戶遠(yuǎn)程登錄
-
終端輸入命令 sudo vim /etc/ssh/sshd_config ,修改 ssh 服務(wù)配置文件
sudo vim /etc/ssh/sshd_config 找到 PermitRootLogin,將參數(shù)prohibit-password改為yes,原來(lái)是prohibit-password,如圖所示:

- 設(shè)置完需 ssh 配置文件,我們需要要重啟 ssh 服務(wù),命令 service sshd restart 或者 /etc/initd.d/sshd restart
3. 測(cè)試
在 Windows 宿主機(jī)上下載 SecureCRT 軟件。
打開(kāi) SecureCRT 軟件,進(jìn)行配置:

ProtoCol 模式選為 SSH2,Port 為 22(前面 NAT 設(shè)置等虛擬機(jī)端口號(hào)),HostName 為192.168.124.23(那就是我們宿主 PC 機(jī)的 IP 地址),UserName 為我們 Ubuntu 的登錄賬戶。
[圖片上傳失敗...(image-409a79-1698149661629)]
屏幕快照 2019-06-26 下午 9.13.51
PassWord 為我們 Ubuntu 的登錄密碼

配置完成后,如果成功,會(huì)進(jìn)入虛擬機(jī)的界面
到現(xiàn)在為止,我們已經(jīng)完成了 Windows 宿主機(jī)通過(guò)虛擬機(jī) NAT 模式轉(zhuǎn)發(fā) SSH 請(qǐng)求到虛擬機(jī),并且虛擬機(jī)支持 openssh-server 操作。接下來(lái)就剩下最后一步:將 windows 宿主機(jī)的內(nèi)網(wǎng) IP(就是例子中的 192.168.124.23)映射到外網(wǎng)。
3 使用nat123達(dá)到內(nèi)網(wǎng)穿透
nat 相關(guān)操作
在宿主機(jī)上下載nat123 程序 ,使用自己的帳號(hào)登錄。如沒(méi)有帳號(hào),可以“注冊(cè)帳號(hào)”進(jìn)入網(wǎng)站進(jìn)行注冊(cè)。

主面板/端口映射列表/添加映射

設(shè)置映射信息。選擇非網(wǎng)站應(yīng)用映射類型。填寫(xiě)內(nèi)網(wǎng) LINUX 地址端口,和外網(wǎng)訪問(wèn)的域名。可以使用自己的域名,也可以使用免費(fèi)二級(jí)域名。外網(wǎng)端口在添加映射時(shí),會(huì)自動(dòng)分配一個(gè)可用端口,不用更改。將鼠標(biāo)放在輸入框有向?qū)崾尽?/p>

這是官網(wǎng)的教程:

添加映射后,可查看映射狀態(tài)。將鼠標(biāo)放在映射圖標(biāo)上有提示當(dāng)著狀態(tài)信息。新添加映射一般幾分鐘內(nèi)生效。

4 進(jìn)行 SSH 連接
用處在外網(wǎng)的電腦連接
命令行輸入:
ssh aliceyu@160b2b1e.nat123.cc -p 13604
解釋:
aliceyu:虛擬機(jī)用戶名
160b2b1e.nat123.cc:nat123隨機(jī)分配的域名
-p 13604:指定的服務(wù)端口號(hào),也是nat123分配的
其實(shí)還有一種連接方式:
-
ping域名得到外網(wǎng) IP
AliceYudeMacBook-Pro:~ alice$ ping 160b2b1e.nat123.cc
PING 160b2b1e.nat123.cc (139.199.62.115): 56 data bytes
64 bytes from 139.199.62.115: icmp_seq=0 ttl=229 time=42.318 ms
64 bytes from 139.199.62.115: icmp_seq=1 ttl=229 time=40.618 ms
64 bytes from 139.199.62.115: icmp_seq=2 ttl=229 time=39.732 ms
64 bytes from 139.199.62.115: icmp_seq=3 ttl=229 time=46.012 ms
64 bytes from 139.199.62.115: icmp_seq=4 ttl=229 time=56.567 ms
64 bytes from 139.199.62.115: icmp_seq=5 ttl=229 time=43.138 ms
64 bytes from 139.199.62.115: icmp_seq=6 ttl=229 time=56.581 ms
64 bytes from 139.199.62.115: icmp_seq=7 ttl=229 time=39.161 ms
64 bytes from 139.199.62.115: icmp_seq=8 ttl=229 time=50.325 ms
64 bytes from 139.199.62.115: icmp_seq=9 ttl=229 time=37.974 ms
64 bytes from 139.199.62.115: icmp_seq=10 ttl=229 time=38.712 ms
64 bytes from 139.199.62.115: icmp_seq=11 ttl=229 time=50.818 ms
64 bytes from 139.199.62.115: icmp_seq=12 ttl=229 time=39.310 ms
上述:PING 160b2b1e.nat123.cc (139.199.62.115): 56 data bytes,139.199.62.115 就是域名對(duì)應(yīng)的外網(wǎng) IP。
- ssh 連接
ssh aliceyu@139.199.62.115 -p 13604
AliceYudeMacBook-Pro:~ alice$ ssh aliceyu@139.199.62.115 -p 13604
aliceyu@139.199.62.115's password:
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.15.0-51-generic x86_64)
- Documentation: https://help.ubuntu.com
- Management: https://landscape.canonical.com
- Support: https://ubuntu.com/advantage
148 個(gè)可升級(jí)軟件包。
0 個(gè)安全更新。
New release '18.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
**_ 需要重啟系統(tǒng) _**
Last login: Wed Jun 26 21:35:04 2019 from 192.168.124.23
aliceyu@aliceyu-virtual-machine:~$ ls
core Downloads Files ncbi Templates
Desktop examples.desktop igv Public vmware-root
aliceyu@aliceyu-virtual-machine:~$
其它內(nèi)網(wǎng)穿透工具
