2022-12-14 TCP/IP 协议栈_1

2022-12-14 TCP/IP 协议栈_1


前言

学计算机网络完全是迫于这玩意到处都得用, 虽然学了 C, C++, 但脱离了网络, 实际意义又有多大?

终身学习不是口号, 是命运, 生死看淡, 不服就干.

我们先从搭建环境搭建做起.


一、Windows + WSL2 + Wireshark

网络开发一般是Linux服务端 + Windows客户端, 网络学习就不必买台服务器了, 直接通过 windows 及虚拟机代替.

wsl2 是Windows装Linux的最佳选择, win10 系统天然支持.

打开控制面板:

打开程序和功能:

启动或关闭windows功能:

打开: Telnet客户端, Windows 虚拟机监控程序平台, 简单 TCPIP服务(即 echo, daytime等), 适用于 Linux 的 Windows 子系统, 虚拟机平台.

然后等带设置完成.

打开Microsoft store, 搜索 debian (如果你用Ubuntu就选Ubuntu), 下载安装. 其它的版本不要用.

打开 debian, 不要试图安装任何桌面, 命令行就是最好的学习环境.

设置用户名和用户密码, 请务必记住, 否则无法进行下一步的安装和继续的设置.

在 debian 的终端输入: ifconfig,

出现如下信息:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.29.194.15  netmask 255.255.240.0  broadcast 172.29.207.255
        inet6 fe80::215:5dff:fe0b:9d2d  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:0b:9d:2d  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 586 (586.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

终端输入 arp -a, 出现如下信息:

DESKTOP-0T82VB6.mshome.net (172.29.192.1) at 00:15:5d:0b:98:6e [ether] on eth0

OK, wsl2 已经安装好了.

搜索Wireshark, 下载安装.

打开Wireshark , 双击 vEthernet(WSL) 进入虚拟连接.

从 Debian 的终端安装 sudo apt install telnet

通过telnet 连接Windows:

在 Debian 终端输入:

telnet 172.29.192.1

出现 telnet: Unable to connect to remote host: Connection refused

说明Windows对wsl2没开防火墙.

打开Windows安全中心, 防火墙和网络保护, 高级设置

点击入站规则: 新建规则,

规则类型: 自定义,
.
程序: 所有程序,

协议和端口: 协议类型:任何

作用域: 本地IP地址填入 172.29.192.1 (wsl虚拟连接ip), 原创IP地址填入: 172.29.194.15(Debian被分配的地址)

剩下的都是下一步, 填入名称 WSL 完成.

注意, 每次开启 wsl2 都会改变 Windows 的虚拟连接, 同时 Debian 的 ip 也会变. 好在Windows访问WSL2没问题, 反过来才需要设置防火墙.

在 Debian 终端输入:

telnet 172.29.192.1

连接会失败, 但在 Wireshark 中出现 TCP, ARP 等相关捕获

开启 Debian 的 telnet 服务:

Debian下配置telnet服务器

照着做就可以了, 每回重启WSL2都要启动telnet, 用:

sudo /etc/init.d/xinetd restart

重新开启 telnet 之后, 在Windows cmd 输入:

telnet 172.29.194.15

进入设置界面,

login: 你的 Debian 用户名

password: 用户密码

就可进入telnet服务.

另外, 既然学网络, namp也装一下: 在Debian的终端输入:

sudo apt-get install nmap

通过nmap探测主机自身地址:

~$ nmap -p 23 127.0.0.1
Starting Nmap 7.80 ( https://nmap.org ) at 2022-12-14 15:10 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000061s latency).

PORT   STATE  SERVICE
23/tcp closed telnet

我是先探测telnet端口关闭, 才安装telnet服务.


总结

工具搭建不是太难, 但是如果不会善用搜索, 估计会出很多问题, 毕竟每个人的计算机设备和系统不一定相同, 比如我的windows就没有telnet服务, 当然, 并不需要, 主要是 Wireshark 抓包好使就行.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不停感叹的老林_<C 语言编程核心突破>

不打赏的人, 看完也学不会.

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值