内网穿透和远程开机

今天讲一个比较使用的技巧:内网穿透和远程开机

应用场景:回家之后想访问公司内网的服务器或者其他资料;或者不在学校时想通过学校的内网下载论文、远程选课等等;

或者在寝室想要远程控制实验室的电脑,远程开机等等。

这里就分为几种情况了:

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