学计算机网络完全是迫于这玩意到处都得用, 虽然学了 C, C++, 但脱离了网络, 实际意义又有多大?
终身学习不是口号, 是命运, 生死看淡, 不服就干.
我们先从搭建环境搭建做起.
网络开发一般是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 抓包好使就行.