[步骤] Linux 排错报告的生成

步骤一:新开 1 个端口开启 tcpdump 命令生成 TCP 报告

# tcpdump -s 0 -i INTERFACE -w /tmp/tcpdump.pcap

(补充:这里以生成名为 /tmp/tcpdump.pcap 的 TCP 报告为例)

步骤二:新开 1 个端口使用 strace 命令生成追踪报告

# strace -fvttTyy -s 4096 -o /tmp/strace.log

(补充:这里以生成名为 /tmp/strace.log 的追踪报告为例)

步骤三:执行会报错的步骤

# mount -vvv -t cifs -o username=<share user>,password=<share password>,domain=<share domain> //<share folder> /mnt

(补充:这里以挂载 Samba 目录为例)

步骤四:分析刚刚生成的 TCP 报告和追踪报告

(注意:在本文章中,在前面生成的 TCP 报告是 /tmp/tcpdump.pcap 追踪报告是 /tmp/strace.log)

[命令] Linux 命令 ncat 端口管理

正文:

案例一:连接远处端口

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