本文承接上文,继续对net cat的一些命令进行介绍,帮助大家更好的了解和掌握net cat。话不多说,开始这次的介绍。
nc -o file
常见的net cat中此用法不标准,且修改过的net cat版本不统一,这里就不做介绍了。
nc -p port
这一命令多用于指定本地端口,这在你想要指定nc
作为客户端或者服务器端所使用的本地端口时非常有用。
在作为客户端时,当nc
作为客户端去连接远程服务器时,使用-p
可以指定本地用于连接的端口。不过要注意,在某些系统中,只有具有足够权限(如 root 权限)才能使用小于 1024 的端口。
例如,你想通过指定本地端口5000
去连接远程服务器example.com
的80
端口,可以使用命令nc -p 5000 example.com 80
。这个命令尝试从本地的5000
端口发起一个连接到example.com
的80
端口的操作,用于发送和接收数据,比如进行简单的 HTTP 请求测试等场景。
在座位服务器端时,当nc
作为服务器端监听某个端口时,-p
选项同样可以指定本地监听的端口。例如,你想让nc
在本地3000
端口进行监听,等待客户端连接,可以使用命令nc -l -p 3000
。这里-l
表示监听模式,-p 3000
指定了监听的端口是3000
。当有客户端连接到这个本地3000
端口时,就可以进行数据的收发操作,比如可以用于简单的网络测试,像模拟一个简单的基于 TCP 的服务来接收客户端发送的数据。
nc -r
在nc
(netcat)命令中,-r
选项用于指定随机本地端口或随机源 IP(在某些特殊配置或允许的情况下)。
当nc
作为客户端连接远程服务器时,使用-r
可以让nc
随机选择一个本地端口来发起连接,而不是使用默认的规则来确定端口。
例如,nc -r remote-server.com 80
,这里nc
会随机挑选一个本地端口来建立与remote - server.com
的80
端口的连接。这在一些需要动态分配端口的场景或者对端口没有严格要求的测试场景下比较有用。
当作为随机源IP时,通常需要特殊的网络环境和权限配置,而且非常少见
注意因为-r
涉及到随机选择,所以每次执行带有-r
选项的nc
命令可能会得到不同的结果(尤其是在端口选择方面)。并且,在使用-r
选择随机端口时,也要考虑所选择端口是否会与其他正在使用的服务或进程产生冲突。
nc -q secs
与nc -i类似,不过在nc
(netcat)命令中,-q
选项用于在nc
完成连接后等待指定的秒数(secs
)后退出。
当nc
作为客户端连接到远程服务器时,-q
选项可以用来控制nc
在数据传输结束后等待一段时间再关闭连接。
例如,nc -q 5 remote - server.com 80
。在这个命令中,nc
会先连接到remote - server.com
的80
端口进行数据传输。当数据传输结束后,nc
不会立即退出,而是会等待 5 秒后再退出连接。
这个功能在一些场景下很有用,比如当你不确定远程服务器是否还有后续的数据需要发送过来,或者你想给远程服务器一些时间来完成某些可能的清理操作。它可以避免连接过早关闭导致的数据丢失或者远程端的错误。
nc -s addr
在nc
(netcat)命令中,-s
选项用于指定本地源 IP 地址(addr
)。这在拥有多个网络接口或者需要伪装源 IP(在合法授权的场景下)的情况下非常有用
假设一台服务器有多个网络接口,每个接口都有不同的 IP 地址。如果要使用nc
命令通过特定的网络接口来发送数据,就可以使用-s
选项指定该接口对应的 IP 地址。例如,服务器有两个网络接口,一个接口的 IP 地址是192.168.1.10
,另一个是10.0.0.2
。如果要通过10.0.0.2
这个接口发送nc
连接,可以使用命令nc -s 10.0.0.2 remote - server.com 80
,这里nc
会将10.0.0.2
作为源 IP 地址来连接remote - server.com
的80
端口。
同时,在一些经过授权的网络安全测试场景中,比如在模拟特定攻击路径或者测试网络访问控制策略时,可能需要伪装源 IP 地址。不过,需要注意的是,在未经授权的情况下,随意伪装源 IP 地址是非法的,可能会导致网络安全问题和法律责任。例如,在一个内部网络安全测试实验室环境中,经过适当的审批和配置,可以使用-s
选项来模拟从不同的内部 IP 地址进行连接,以检查防火墙和访问控制策略的有效性。
nc -T tos
在nc
(netcat)命令中,-T
选项用于设置 IP 服务类型(Type of Service,简称 TOS)的值(tos
)。TOS 是 IP 数据包头部的一个字段,用于指定特定的服务质量(QoS)要求。
假设你希望nc
命令发送的数据在网络中有最小延迟的优先级,并且你的网络设备支持通过 TOS 来进行优先级处理,你可以使用一个代表最小延迟的tos
值(具体值可能因网络设备和协议而异)。例如,nc -T 4 remote - server.com 80
(这里假设4
是代表最小延迟的 TOS 值),这样nc
发送的数据在经过支持 TOS 的网络设备时,会尽量按照最小延迟的要求进行处理。
还剩一点命令,就先留到下次再介绍吧,今日甚是疲惫了。