通过路由器端口映射实现远程桌面连接
程序员文章站
2024-02-11 15:23:10
...
写在前面 最重要的一点 如果是光猫拨号 需要改成路由器拨号光猫桥接的模式 然后在端口映射 可能存在 你家的公网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. 以上就是我要说的全部内容