通过路由器端口映射实现远程桌面连接

写在前面  最重要的一点  如果是光猫拨号 需要改成路由器拨号光猫桥接的模式  然后在端口映射 可能存在 你家的公网ip和光猫的公网ip不一样 这种情况就是你的光猫连接的是片区的大路由器 考虑找电信申请一个公网ip

1.起因

    花生壳,teamviewer 等始终要到服务器去绕一遍 网络不友好,不如干脆直从路由器映射端口来连接;

2.思路

    通过修改本机远程桌面端口,然后在路由器添加端口映射,然后通过定时任务将本机公网IP发送到邮箱;

从而实现随时获取远程计算机公网ip来实现远程桌面连接;

3.行不通的情况

    3.1 没有公网ip

    3.2 你改不来路由器端口映射

 

4.实现方法

    4.0 开启远程桌面

    4.1 修改远程桌面端口

        参照:https://jingyan.baidu.com/article/e52e36154ad4f740c60c5136.html

    4.2 修改路由器端口映射

        此处自行百度你的路由器品牌和型号去设置

    4.3  创建vbs脚本

''getIP 获取当前公网IP并发送到邮箱
''路由器端口映射自行处理 大概是nat之类的
''设置远程桌面端口  https://jingyan.baidu.com/article/e52e36154ad4f740c60c5136.html
''定时任务添加方法  https://blog.csdn.net/qianxing111/article/details/80015702
set http=createobject("Microsoft.XMLHTTP") 
ipp="http://2019.ip138.com/ic.asp" ''ip获取地址
http.open "get",ipp,false 
http.send 
ss=bytes2BSTR(Http.responsebody) 
intStrA = InStr(1,ss,"[",1)+1 
sss=mid(ss,intStrA) 
intStrB = InStr(1,sss,"]",1)-1 
ss=mid(ss,intStrA,intStrB) 
'wscript.echo ss 

Function bytes2BSTR(vIn) 
strReturn = "" 
For i = 1 To LenB(vIn) 
ThisCharCode = AscB(MidB(vIn,i,1)) 
If ThisCharCode < &H80 Then 
strReturn = strReturn & Chr(ThisCharCode) 
Else 
NextCharCode = AscB(MidB(vIn,i+1,1)) 
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 
i = i + 1 
End If 
Next 
bytes2BSTR = strReturn 
End Function 
 

Set objFSO = CreateObject("Scripting.FileSystemObject")
''ip缓存文件,当ip变化会更新此文件内容并发送邮件,需要测试则每次执行后删除此文件
fpath="c:\publicip.dat"

Set objFile = objFSO.OpenTextFile(fpath, 1,true)
do while objFile.atendofstream<>true
fstr = objFile.readline
loop
objFile.Close
If fstr = ss Then 
wscript.quit
Else
objFSO.OpenTextFile(fpath, 2).write(ss)
End If 


''SendEmail 
NameSpace = "http://schemas.microsoft.com/cdo/configuration/" 
Set Email = CreateObject("CDO.Message") 
Email.From = "****@163.com" ''发件人
Email.To = "****@163.com" ''收件人
Email.Subject = "公网ip通知 -" &date()  ''标题
Email.Textbody = ss&"   ,Date:"&date() 'ss为获取到的ip 
With Email.Configuration.Fields 
.Item(NameSpace&"sendusing") = 2 
.Item(NameSpace&"smtpserver") = "smtp.163.com" 'smtp服务器地址 
.Item(NameSpace&"smtpserverport") = 25 
.Item(NameSpace&"smtpauthenticate") = 1 
.Item(NameSpace&"sendusername") = "***@163.com" ''邮箱账号
.Item(NameSpace&"sendpassword") = "***" ''邮箱密码
.Update 
End With 
Email.Send

        4.4 将以上代码复制 保存为.vbs扩展名的文件 然后修改里面的****处 为你自己的信息

        4.5 创建计划任务

            参照:https://blog.csdn.net/qianxing111/article/details/80015702

            注:  在触发器那一栏可以加上启动时
            注:  很重要一点 用户那个地方要设置成system用户 不然你没有远程连接的时候 他不会执行 

   5. 以上就是我要说的全部内容 

你可能感兴趣的:(生活小技巧)