要综合判断各种协议(TCP、HTTP、HTTPS、DNS、ICMP等)及端口通信的情况。常见的允许流量出网的端口有80、8080、443、53、110、25、22等。常用的内网连通性判断方法如下:
- ICMP协议
执行命令"ping <IP地址或域名>"
ping ip/domain
tracert ip/domain
ping www.baidu.com # ICMP
tracert baidu.com # ICMP
- TCP协议
使用netcat工具,执行"nc <IP地址 端口号>"
或者
telnet <IP地址 端口号>
telnet ip port
nc -zv ip port
nc -zuv ip port
telnet 192.168.1.108 22 # TCP
nc -zv 192.168.1.108 80 # TCP
nc -zuv 192.168.1.108 80 # UDP
-
HTTP协议
Windows XP 和 Windows Server 2003没有Powershell、bitsadmin,certutil也不能用。
可以写一个vbs下载者(https://www.jb51.net/article/50538.htm)到目标主机上,执行测试http是否出网。 或者用 mshta(可能会弹框)
CURL下载:https://curl.se/download/
curl ip or domain
curl http://www.baidu.com # HTTP
在使用curl时,需要执行"curl <ip地址:端口号>"命令。如果远程主机开启了相应的端口,会输出相应的端口信息;如果远程主机没有开通相应的端口,则没有任何提示。按"ctrl+c"键即可断开连接
or
certutil -urlcache -f -split http://xxx/
Linux: wget curl
Windows: certutil powershell bitsadmin regsrv....
- DNS协议
在进行DNS连通性检测时,常用的命令为nslookup和dig
nslookup是Windows操作系统自带的DNS探测命令。其用法如下:
nslookup www.baidu.com vps-ip
#nslookup domain [dns-server] 如果没有指定dns服务器,就采用系统默认的dns服务器。
dig是Linux默认自带的DNS探测命令。其用法如下:
dig @vps-ip www.baidu.com
- 还有一种情况是流量不能直接流出,需要在内网中设置代理服务器,常见于通过企业办公网段上网的场景。常用的判断方法如下:
①查看网络连接,判断是否存在与其他机器的8080(不绝对)等端口的连接(可以尝试运行“ping -n 1 -a ip”命令)
②查看内网中 是否有主机名类似于"proxy"的机器
③查看IE浏览器的直接代理
④根据pac文件的路径(可能是本地路径,也可能是远程路径),将其下载下来并查看
⑤执行如下命令,利用curl工具进行确认