【ECS】如何确定远程连接Windows主机的客户端源IP地址
【背景描述】:
需要确定远程连接的客户端源ip地址,以便添加到安全组或防火墙白名单,但客户端本地外网出口IP不固定,有时访问的目标地址不同会有不同的出口IP。比如常用的ip地址查询网站https://www.ip138.com/和https://www.ipip.net/查询的本地IP可能就不一样,远程连接的本地出口IP可能和前面搜出来的都不同。此时最直接的方法是在目标服务器里抓包,查看连接的源ip地址即可确定。但对于没有抓包工具的Windows服务器,且遇到远程等端口无法建立连接的情况下就较为困难了。
【适用场景】:
适用于目标为Windows系统的服务器,且远程等端口监听正常,需要确定客户端源IP地址。
【操作步骤】:
1、在资源监视器里查看
若服务器里有可以访问的端口,比如本来就可以远程连接(3389端口),或可以访问到的网站(80、443端口),此时可以远程连接或访问网站,然后再在目标服务器的资源监视器里查看连接IP即可。
如下图所示,在Windows附件或搜索里搜索打开“资源监视器”。
在“网络”下的“TCP连接”里,可以看到目标服务器本地端口“3389”的连接“远程地址”,也就是客户端连接源ip地址。
2、通过命令提示符查看
同样先远程连接上目标服务器或访问目标网站,然后再在目标服务器的命令提示符(cmd)里查看连接IP。
打开命令提示符输入如下命令回车执行:
netstat -ano |findstr 3389
如上图,第二行为远程建立的连接,其中第三列为“外部地址”,也就是我们要找的客户端连接出口ip地址。
3、修改或增加端口转发确定
若云端服务器里没有直接可以访问的端口,比如3389端口现在就不能远程上(如客户端本地IP被某些防火墙拦截3389端口),且目标服务器本身也没有其他可以连接的端口。此时连接根本不能建立,上述查看连接状态的方法就不能直接查看了。
若从服务器内部查看3389端口是监听的,或从云平台内网或通过其他网络环境可以远程上服务器,说明远程服务是没有问题。此时可以把远程端口修改为非3389端口尝试连接上,然后再在服务器的资源监视器或命令提示符里查看远端连接IP即可。
3.1、修改远程端口确定
cmd命令提示符里运行:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 3390 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 3390 /f
重启服务器即可把远程端口修改为3390,然后用3390端口远程上服务器,cmd里执行netstat -ano |findstr 3390即可确定。
3.2、增加端口转发确定
可以通过netsh interface portproxy端口转发命令,将3390的端口转发到3389端口:
netsh interface portproxy add v4tov4 listenaddress=192.168.0.169 listenport=3390 connectaddress=192.168.0.169 connectport=3389
注:192.168.0.169为目标服务器内网ip地址。
相当于增加了一个3390的远程端口,然后用3390端口远程连接,netstat -ano |findstr 3390查看下远端IP即可。
补充删除端口转发命令如下:
netsh interface portproxy del v4tov4 listenaddress=192.168.0.169 listenport=3390
- 点赞
- 收藏
- 关注作者
评论(0)