內網穿透和遠程開機

今天講一個比較使用的技巧:內網穿透和遠程開機

應用場景:回家之後想訪問公司內網的服務器或者其他資料;或者不在學校時想通過學校的內網下載論文、遠程選課等等;

或者在寢室想要遠程控制實驗室的電腦,遠程開機等等。

這裏就分爲幾種情況了:

1.內網出口由固定公網ip (百度ip即可看到你的公網ip),一般公司都會購買一個固定的公網ip 

2.內網出口沒有固定公網ip,一般是撥號上網(每次撥號ip都會變化)

其次搞清楚你有沒有路由器(交換機)的管理權限,如果你登陸路由器(交換機)那麼可以很方便的做端口映射,內網穿透也就很簡單了。

接下來先說沒有固定公網ip,也不知道路由器密碼的的情況

1.最簡單的是使用teamviewer,雖然速度慢一點但是還是能用。具體做法就是在內網的機器和家裏的機器上都裝一個teamviewer,然後輸入teamviewer的ID和密碼就可以連接了。當然也可以註冊一個teamviewer賬號,分別把兩臺機器都加到這個賬號裏,我就是用的這種辦法。

teamviewer除了常用的遠程桌面和文件傳送,還有一個隱藏的vpn功能,需要額外安裝即可(windows上點擊 選項>高級>高級網絡設置 裏面安裝vpn)。使用vpn功能時,不是像遠程桌面一樣連到對方桌面,而是爲你分配對應的vpn ip,兩臺機器是可以互相ping通的,此外也可以通過CCProxy等方式進行代理訪問。

注意如果要訪問服務器,teamviewer也有linux版本,安裝的時候用命令即可:

linux安裝teamviewer
1、使用終端下載安裝程序(32位和64位Ubuntu通用)
wget http://download.teamviewer.com/download/teamviewer_i386.deb
2、在終端中執行如下命令進行安裝
sudo dpkg -i teamviewer_i386.deb
3、使用如下命令處理依賴問題
sudo apt-get install –f

4.teamviewer --daemon stop
5.vim /opt/teamviewer/config/global.conf
在末尾添加:
 [int32] EulaAccepted = 1 
 [int32] EulaAcceptedRevision = 6 

6.teamviewer --daemon start	
7.teamviewer --info print id		獲取Teamviewer ID
如果沒有id,就先執行第8步,就能看到id了
8.teamviewer --passwd 1112233  	設置密碼
9.在windows上輸入id和密碼連接。
2.第二種方法要麻煩一點,需要藉助第三方的域名,比如花生殼、nat123等,我用的nat123,它基礎功能免費,其他是收費的。

具體就是在內網的機器A上安裝nat123的代理軟件,然後登陸nat123官網申請一個域名 如xxx..123nat.com,再將A的ip地址映射到這個域名。這個時候在公網的B機器上(比如筆記本)安裝nat123的客戶端軟件就可以連上A了,比如說SSH登陸。

接下來先說沒有固定公網ip,但是知道路由器密碼的的情況:

如果你知道路由器的密碼,只需要登陸上去做個端口映射即可。

3389端口是windows自帶的遠程端口, 9是遠程開機的端口(後面說),還有一些如22,8080等根據需要開啓。


如果開通了3389端口,這樣的話就可以使用外網ip遠程桌面連接到內網機器了;

如果開通了22端口,這樣的話就可以使用外網ip ssh到內網機器了;

但是因爲外網ip不固定,一旦撥號iP變了就連不上了,所以需要配合teamviewer來查看ip,或者使用nat123綁定域名。

注:把端口暴露在公網中有安全風險,應該儘量少開端口。


接下來說一下有固定公網ip 的情況:

這個情況就簡單得多了,可以直接連接遠程桌面,

如果是linux服務器,先端口轉發就可以ssh了。

這裏貼一個很方便的端口轉發的腳本:

addnat.sh 添加端口:

#! /bin/sh

ipf=$(cat /proc/sys/net/ipv4/ip_forward)
[ $ipf -eq 0 ] && echo 1 > /proc/sys/net/ipv4/ip_forward
[ $1 = "help" ] && 
{
		echo "$0 wanport lanip lanport"
		exit 0
}
wanip=$(ip addr show dev vmbr0 | grep "inet " | cut -d " " -f6 | cut -d "/" -f1)
wanport=$1
lanip=$2
lanport=$3
[ -z "$lanip" -o -z "$lanport" -o -z "$wanip" -o -z "$wanport" ] && exit 1
iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m tcp --dport $wanport -j DNAT --to $lanip:$lanport
[ $? -ne 0 ] && exit 2
iptables -t nat -A POSTROUTING -o vmbr1 -p tcp -m tcp --sport $lanport -j SNAT --to $wanip:$wanport
[ $? -ne 0 ] && exit 3
echo "add port forward ok"

mvnat.sh  刪除端口:

#! /bin/sh
 
ipf=$(cat /proc/sys/net/ipv4/ip_forward)
[ $ipf -eq 0 ] && echo 1 > /proc/sys/net/ipv4/ip_forward
[ $1 = "help" ] && 
{
		echo "$0 wanport lanip lanport"
		exit 0
}
wanip=$(ip addr show dev vmbr0 | grep "inet " | cut -d " " -f6 | cut -d "/" -f1)
wanport=$1
lanip=$2
lanport=$3
[ -z "$lanip" -o -z "$lanport" -o -z "$wanip" -o -z "$wanport" ] && exit 1
iptables -t nat -D PREROUTING -i vmbr0 -p tcp -m tcp --dport $wanport -j DNAT --to $lanip:$lanport
[ $? -ne 0 ] && exit 2
iptables -t nat -D POSTROUTING -o vmbr1 -p tcp -m tcp --sport $lanport -j SNAT --to $wanip:$wanport
echo "remove port forward ok"

使用說明:

addnat.sh 19000 11.11.11.11 9000    內網
mvsnat.sh 19000 111.111.111.111 9000    外網

檢查端口:telnet 111.111.111.111 19000
查看端口是否開放:netstat -atnp | grep 19000
查看端口轉發情況:iptables -t nat -nL


最後來說一下遠程開機的情況:

遠程開機可以分爲同在一個局域網和通過外網連接到內網開機兩種情況:

原理是利用Wol軟件給網卡發送一個特殊的數據包,網卡識別到它就會自動開機。

首先開機進入BIOS,把主板的遠程喚醒 開啓,默認是關閉的,其餘的不用管了。

其次下載一個軟件WOL Magic Packet Sender,或者其他的類似的。

然後設置:

如果是局域網喚醒,需要填入主機的本地ip(不是公網ip哈) 、子網掩碼、mac地址 (這三個是必須的)

然後協議選UDP、端口選9(最後兩個選項不是必須的)

如果是公網喚醒,需要填入主機的公網ip,(如果是撥號ip,那麼需要每次更改這個填入的ip即可)

子網掩碼:255.255.255.255 [Internet] 或者0.0.0.0 [Network Broadcast]

mac地址 (同一個mac)

然後協議選UDP、端口選9,這裏主要端口9是指公網ip的9,所以需要去路由器上把公網ip的端口9映射到本機的端口9。

所以只簡單的需要三步。

完、、、、

====end====

每天進步一點點。。。

更多請關注

====end====
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章