正文:
案例一:连接远处端口
1.1 连接远处的端口
# ncat 192.168.0.1 80
(补充:这里以连接 IP 地址 192.168.0.1 的 80 端口为例)
1.2 通过代理连接远处的端口
# ncat --proxy 10.0.0.1:10000 --proxy-type http 192.168.0.1 22
(补充:这里以通过代理 IP 地址 10.0.0.1 的 10000 端口,代理协议是 http,连接远程 IP 地址 192.168.0.1 的 22 端口为例)
1.3 通过代理连接远处的端口 (需要验证用户名)
# ncat --proxy 10.0.0.1 --proxy-type socks4 --proxy-auth eternalcenter 192.168.0.1 25
(补充:这里以通过代理 IP 地址 10.0.0.1 的 1080 端口,代理协议是 socks4,代理账号是 eternalcenter,连接远程 IP 地址 192.168.0.1 的 25 端口为例)
(注意:socks4 的协议默认使用的端口是 1080)
1.4 通过代理连接远处的端口 (需要验证用户名和密码)
# ncat --proxy 10.0.0.1 --proxy-type socks5 --proxy-auth eternalcenter:123 192.168.0.1 25
(补充:这里以通过代理 IP 地址 10.0.0.1 的 1080 端口,代理协议是 socks5,代理账号是 eternalcenter,代理密码是 123,连接远程 IP 地址 192.168.0.1 的 25 端口为例)
(注意:socks5 的协议默认使用的端口是 1080)
案例二:在本地开启端口
2.1 在本地开启端口
# ncat -l 8080
(补充:这里以在本地开启 8080 端口为例)
2.2 在本地开启指定协议的端口
# ncat -l --proxy-type http localhost 8080
(补充:这里以在本地开启协议是 http 的 8080 端口为例)
2.3 在本地通过某个应用开启端口
# ncat --exec "/bin/bash" -l 8080 --keep-open
(补充:这里以在本地通过 /bin/bash 应用开启 8080 端口为例)
2.4 在本地通过某个应用开启端口 (限制最大连接数)
# ncat --exec "/bin/bash" --max-conns 3 -l 8080 --keep-open
(补充:这里以在本地通过 /bin/bash 应用开启 8080 端口最大连接数为 3 为例)
2.5 在本地通过某个应用开启端口 (限制可访问的源 IP 地址)
# ncat --exec "/bin/bash" -l --allow 192.168.0.0/24 8080 --keep-open
(补充:这里以在本地通过 /bin/bash 应用开启 8080 端口只允许 192.168.0.0/24 访问为例)
案例三:在本地开启代理端口
# ncat --sh-exec "ncat 192.168.0.1 80" -l 8080 --keep-open
(补充:这里以将本地的 8080 端口作为 IP 地址 192.168.0.1 的 80 端口为例,任何访问本地 8080 端口的流量都会指向 IP 地址 192.168.0.1 的 80 端口)
参考文献:
https://www.man7.org/linux/man-pages/man1/ncat.1.html