首次提交

This commit is contained in:
2026-06-16 10:23:51 +08:00
commit aaeb52173b
740 changed files with 173337 additions and 0 deletions
@@ -0,0 +1,16 @@
ssh-keygen -t ed25519 -f "D:\wyc/ssh\wyc_common_ed25519" -C "wyc通用公钥私钥"
Host jump-host
HostName 192.168.1.24
User wyc
Port 22
IdentityFile C:\Users\wyc\.ssh\private\id_rsa
+154
View File
@@ -0,0 +1,154 @@
# 免密登录配置
客户端使用私钥,服务端保存公钥
## 前置条件
### linux服务端
- 服务端(受控端)需要安装 sshserver
- 步骤:
- sudo apt install openssh-server
- sudo systemctl status ssh
### windows服务端
- 设置 设置管理 可选功能 添加可选功能 下载ssh服务器,SSH 连接中,控制端(客户端)和 受控端(服务器)
- win + r services.msc
- 找到“OpenSSH SSH Server”服务。
- 右键点击服务,选择“启动”来启动SSH服务。
## 生成密钥(windows linux通用)
## linux服务端配置 必须authorized_keys目录下
- **1、修改服务端配置文件**
修改三个位置
sudo nano /etc/ssh/sshd_config
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys/wyc_common_ed25519.pub .ssh/authorized_keys .ssh/authorized_keys2
- **2、重新启动服务**
service sshd restart
- **3、写入公钥**
进入主目录 CTRL+H 显示隐藏文件
新建.ssh 进入打开终端
新建 authorized_keys 写入公钥
## windows服务端配置
- **1、修改服务端配置文件**
C:\ProgramData\ssh\sshd_config
确保以下3条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no (需要将默认的yes改为no,很重要)
确保以下2条有注释掉
#Match Group administrators
#AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
- **2、重新启动服务**
win+r service.msc
- **3、写入公钥**
C:\Users\${wyc}\.ssh\authorized_keys 放置公钥
#### 客户端配置(windows linux通用) ***放入私钥***
- ${用户目录下}/config 写入
```
Host jump-host
HostName 192.168.1.24
User wyc
Port 22
IdentityFile C:\Users\wyc\.ssh\private\id_rsa
Host target-host
HostName 192.168.1.166
User bright
Port 22
ProxyJump jump-host
```
- ## 参考资料
- [windows Openssh-server(服务端-免密登陆设置)](https://www.jianshu.com/p/82f90716f9f0)
- [如何在 Ubuntu 上启用 SSH(适用于 20.04、22.04)?](https://developer.aliyun.com/article/1488008)
- [SSH配置文件 /etc/ssh/sshd_conf参数详细说明](https://blog.csdn.net/jxb513651608/article/details/110476607)
- ##### 客户端config
- [SSH config使用教程和总结](https://www.hi-linux.com/posts/14346.html)
- [ssh之 ~/.ssh/config 配置文件实现](https://blog.csdn.net/weixin_45697293/article/details/125119796)
- [SSH Config 那些你所知道和不知道的事](https://deepzz.com/post/how-to-setup-ssh-config.html)
- [FreeBSD Manual Pages](https://man.freebsd.org/cgi/man.cgi?query=ssh_config)
- ## 使用最佳实践
- 目录使用 新建一个~/.ssh/private文件夹 所有的公钥私钥都放在这个文件夹下
- 每台设备生成自己的公钥私钥 并在自己的authorized_keys里放置自己的公钥 谁想连接他就把私钥给谁
### 远程调试
注意使用clion 远程调试功能时 target remote 指的是gdb客户端 到 gdb服务端的命令 需要后台起一个ssh转发流量功能
target remote 127.0.0.1:1234
### 开启ssh隧道示例
ssh -L 1234:127.0.0.1:1234 wyc@ubuntu_22_04_5
PS C:\Users\wyc> gcc -print-search-dirs install: C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/
programs: =
C:/wyc/toolchain/aaa/libexec/gcc/x86_64-wyc-linux-gnu/15.1.0/;
C:/wyc/toolchain/aaa/libexec/gcc/x86_64-linux-gnu/;
C:/wyc/toolchain/aaa/libexec/gcc/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/bin/x86_64-wyc-linux-gnu/15.1.0/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/bin/x86_64-linux-gnu/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/bin/
libraries: =
C:/wyc/toolchain/aaa/lib/gcc/x86_64-wyc-linux-gnu/15.1.0/;
C:/wyc/toolchain/aaa/lib/gcc/x86_64-linux-gnu/;
C:/wyc/toolchain/aaa/lib/gcc/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/lib/x86_64-wyc-linux-gnu/15.1.0/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/lib/x86_64-linux-gnu/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/lib64/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/lib/x86_64-wyc-linux-gnu/15.1.0/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/lib/x86_64-linux-gnu/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/lib64/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/usr/lib/x86_64-wyc-linux-gnu/15.1.0/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/usr/lib/x86_64-linux-gnu/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/usr/lib64/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/lib/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/lib/;
C:/wyc/toolchain/aaa/x86_64-wyc-linux-gnu/sysroot/usr/lib/
C:/wyc/toolchain/aaa/libexec/gcc/x86_64-wyc-linux-gnu/15.1.0/cc1.exe
-quiet -v -imultiarch x86_64-linux-gnu
-iprefix C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/
-isysroot C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot
.\CMakeCCompilerId.c
-quiet -dumpdir c/wyc/CLionProjects/plantSunCat/build/
-dumpbase aaa.c
-dumpbase-ext .c
-mtune=generic
-march=x86-64
-version
-o C:\Users\wyc\AppData\Local\Temp\ccyN8nIV.s
PS C:\wyc\CLionProjects\plantSunCat\build\windows_to_linux_toolchain\CMakeFiles\3.31.6\CompilerIdC> gcc -### -c .\CMakeCCompilerId.c -o aaa.o
Using built-in specs.
COLLECT_GCC=C:\wyc\toolchain\aaa\bin\gcc.exe
Target: x86_64-wyc-linux-gnu
Configured with: ../configure --prefix=/aenv/mingw_wyc_176_toolchain --with-gmp=/aenv/mingw_wyc_176_toolchain --with-mpfr=/aenv/mingw_wyc_176_toolchain --with-mpfr=/aenv/mingw_wyc_176_toolchain --enable-languages=c,c++ --with-pkgversion='wyc 2025.07-25-plant_sun_cat' --with-bugurl=1104749580@qq.com --without-isl --without-cloog --disable-libssp --disable-multilib --disable-bootstrap --enable-shared --build=x86_64-pc-linux-gnu --host=x86_64-w64-mingw32 --target=x86_64-wyc-linux-gnu /aenv/mingw_wyc_176_toolchain x86_64-pc-linux-gnu x86_64-w64-mingw32 x86_64-wyc-linux-gnu --with-sysroot=/aenv/mingw_wyc_176_toolchain/x86_64-wyc-linux-gnu/sysroot
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.1.0 (wyc 2025.07-25-plant_sun_cat)
COLLECT_GCC_OPTIONS='-c' '-o' 'aaa.o' '-mtune=generic' '-march=x86-64'
"C:/wyc/toolchain/aaa/bin/../libexec/gcc/x86_64-wyc-linux-gnu/15.1.0/cc1.exe" -quiet -imultiarch x86_64-linux-gnu -iprefix "C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/" -isysroot "C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot" ".\\CMakeCCompilerId.c" -quiet -dumpbase aaa.c -dumpbase-ext .c "-mtune=generic" "-march=x86-64" -o "C:\\Users\\wyc\\AppData\\Local\\Temp\\cc7Ncwwb.s"
COLLECT_GCC_OPTIONS='-c' '-o' 'aaa.o' '-mtune=generic' '-march=x86-64'
"C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/../../../../x86_64-wyc-linux-gnu/bin/as.exe" --64 -o aaa.o "C:\\Users\\wyc\\AppData\\Local\\Temp\\cc7Ncwwb.s"
COMPILER_PATH=C:/wyc/toolchain/aaa/bin/../libexec/gcc/x86_64-wyc-linux-gnu/15.1.0/;C:/wyc/toolchain/aaa/bin/../libexec/gcc/;C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/../../../../x86_64-wyc-linux-gnu/bin/
LIBRARY_PATH=C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/;C:/wyc/toolchain/aaa/bin/../lib/gcc/;C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/../../../../x86_64-wyc-linux-gnu/lib/../lib64/;C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot/lib/x86_64-linux-gnu/;C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot/lib/../lib64/;C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot/usr/lib/x86_64-linux-gnu/;C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot/usr/lib/../lib64/;C:/wyc/toolchain/aaa/bin/../lib/gcc/x86_64-wyc-linux-gnu/15.1.0/../../../../x86_64-wyc-linux-gnu/lib/;C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot/lib/;C:/wyc/toolchain/aaa/bin/../x86_64-wyc-linux-gnu/sysroot/usr/lib/
COLLECT_GCC_OPTIONS='-c' '-o' 'aaa.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'aaa.'
+8
View File
@@ -0,0 +1,8 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACC7eaOvuREWbtdh6T2x5jMKquhfP0Gb1lsyheyo6FgiwwAAAKgz0PK+M9Dy
vgAAAAtzc2gtZWQyNTUxOQAAACC7eaOvuREWbtdh6T2x5jMKquhfP0Gb1lsyheyo6Fgiww
AAAECT5gODBxKqPMVrxn+q68MB6yM6bvWZPcy8pbSQyUqpN7t5o6+5ERZu12HpPbHmMwqq
6F8/QZvWWzKF7KjoWCLDAAAAHnd5Y+mWq+awseaVpOmNj+6EhOaMnOe7ieS+gOaMnAECAw
QFBgc=
-----END OPENSSH PRIVATE KEY-----
+1
View File
@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILt5o6+5ERZu12HpPbHmMwqq6F8/QZvWWzKF7KjoWCLD wyc閫氱敤鍏挜绉侀挜
+34
View File
@@ -0,0 +1,34 @@
# 四层网络模型
四层网络模型是一种简化的网络协议模型,通常用于网络通信的理解。它将OSI七层模型中的一些层合并,便于实际应用中理解网络通信过程。
## 四层网络模型概述
| 层次 | 主要功能 | 典型协议 | 常见设备/应用 |
|------------|----------------------------------------|------------------------------------|----------------------------------------|
| **应用层** | 提供用户与网络之间的接口,支持高层应用 | HTTP、FTP、SMTP、DNS、Telnet | 浏览器、电子邮件客户端、FTP工具、即时通讯 |
| **传输层** | 负责端到端的数据传输,确保数据可靠性 | TCP、UDP、SCTP | Web浏览、视频流、VoIP、文件传输 |
| **网络层** | 负责数据包的路由与寻址 | IP、ICMP、ARP | 路由器、IP地址分配、数据包路由 |
| **数据链路层** | 负责局域网内数据帧的封装与传输 | Ethernet、PPP、Frame Relay | 交换机、网卡、桥接设备 |
## 四层网络模型层次详细介绍
### 1. **应用层(Application Layer**
- **功能**:应用层是用户与计算机网络之间的接口。它直接为应用程序提供网络服务,负责与用户交互,处理高层的数据传输需求。
- **协议**HTTP、FTP、SMTP、DNS
- **常见应用**:Web浏览器、电子邮件客户端、文件传输、即时通讯工具
### 2. **传输层(Transport Layer**
- **功能**:传输层负责端到端的通信,确保数据可靠传输,管理数据的完整性、顺序和错误控制。传输层协议通过建立、维护和终止连接,确保数据从源到目标主机的正确传输。
- **协议**:TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)
- **常见应用**:Web浏览、视频流、VoIP、文件传输
### 3. **网络层(Network Layer**
- **功能**:网络层负责数据包的路由和寻址,确保数据包能够从源主机通过多个路由中转到目标主机。它决定数据包的最佳传输路径,并处理网络间的通信。
- **协议**:IP(互联网协议)、ICMP(互联网控制消息协议)、ARP(地址解析协议)
- **常见应用**:路由协议(如RIP、OSPF、BGP)、数据包路由与寻址
### 4. **数据链路层(Data Link Layer**
- **功能**:数据链路层负责通过物理媒介在两个设备之间传输数据帧。它对数据进行封装,确保在物理层上正确地传送数据,并提供错误检测和纠正功能。
- **协议**Ethernet(以太网)、PPP(点对点协议)、Frame Relay(帧中继)
- **常见应用**:以太网交换机、网卡、桥接设备
+3
View File
@@ -0,0 +1,3 @@
sudo apt install openssh-server
sudo systemctl status ssh
@@ -0,0 +1,75 @@
# 虚拟机网络模式的区别
在虚拟机中,网络模式的选择会直接影响虚拟机与宿主机、外部网络的连接方式。常见的虚拟机网络模式有以下几种:
## 1. 桥接模式(Bridge Mode
- **虚拟机网络行为**:虚拟机就像与宿主机在同一局域网(LAN)中的一台独立机器。虚拟机将获得一个与宿主机在同一网段的 IP 地址,能够直接与物理网络中的其他设备通信。
- **优点**
- 虚拟机可以直接与外部网络通信,像真实的物理主机一样拥有一个独立的 IP 地址。
- 宿主机与虚拟机之间可以互相访问,且虚拟机可以直接访问互联网。
- **缺点**
- 如果宿主机的网络连接不稳定,虚拟机也会受到影响。
- 在某些情况下,桥接模式需要配置额外的网络设置(如静态 IP 或路由配置),并且依赖宿主机的网络连接。
- **适合场景**
- 当虚拟机需要访问外部网络并拥有与宿主机相同权限时,例如测试、开发环境中的网络服务配置。
## 2. NAT模式(Network Address Translation
- **虚拟机网络行为**:虚拟机通过宿主机的网络连接访问外部网络,但虚拟机本身并不会直接暴露到外部网络中。宿主机会为虚拟机提供网络地址转换服务(NAT),虚拟机获取的 IP 地址通常是私有地址(比如 `10.x.x.x``192.168.x.x`),而宿主机负责将数据包转发给外部网络。
- **优点**
- 简单易用,不需要额外的配置。只要宿主机连接到互联网,虚拟机也能通过宿主机访问外部网络。
- 宿主机和虚拟机共享一个公共 IP 地址,外部网络无法直接访问虚拟机。
- **缺点**
- 虚拟机不能直接被外部设备访问,除非使用端口转发(Port Forwarding)。
- 虚拟机与外部设备无法直接通信,虚拟机的网络配置更受宿主机控制。
- **适合场景**
- 当虚拟机不需要外部设备直接访问,只需要通过宿主机访问外部网络时,例如家庭网络、测试环境中的一般使用。
## 3. 仅主机模式(Host-Only
- **虚拟机网络行为**:虚拟机只能与宿主机进行通信,不能访问外部网络。宿主机会为虚拟机提供一个私有的网络,虚拟机和宿主机之间可以通过该网络进行通信,但虚拟机不能访问互联网。
- **优点**
- 提供一个隔离的网络环境,仅宿主机和虚拟机之间可以互相通信,适合用来测试虚拟机与宿主机之间的通信。
- 不需要外部网络连接,适合内部测试环境。
- **缺点**
- 虚拟机无法访问互联网或与其他设备通信。
- **适合场景**
- 用于需要隔离网络的测试环境,或者只需虚拟机与宿主机之间互通的场景。
## 4. 仅主机模式 + NAT
- **虚拟机网络行为**:虚拟机仅与宿主机通信,并且通过宿主机的 NAT 功能访问外部网络。虚拟机与宿主机之间是通过仅主机模式连接的,但虚拟机可以通过 NAT 模式访问外部网络。
- **优点**
- 虚拟机可以访问外部网络,但外部设备无法直接访问虚拟机。
- 提供了一定的隔离性,但同时保持了外部网络的访问能力。
- **缺点**
- 外部设备无法直接与虚拟机通信,虚拟机无法直接与外部设备通信,除非进行端口转发配置。
- **适合场景**
- 需要虚拟机访问外部网络,但不希望虚拟机暴露在外部网络中时。
## 5. 内部网络模式(Internal Network
- **虚拟机网络行为**:虚拟机之间可以相互通信,但不能访问宿主机或外部网络。该模式创建了一个内部虚拟网络,只有连接到该网络的虚拟机之间可以相互通信。
- **优点**
- 提供完全隔离的网络环境,适合多个虚拟机之间的独立网络测试。
- **缺点**
- 虚拟机无法访问宿主机或外部网络,不适合需要互联网访问的情况。
- **适合场景**
- 用于创建完全隔离的虚拟环境(例如,测试集群或虚拟化环境),虚拟机之间需要互通但不需要外部访问。
---
## 常见虚拟机网络模式的比较
| 网络模式 | 外部网络访问 | 宿主机与虚拟机通信 | 虚拟机与虚拟机通信 | 适用场景 |
|------------------|----------------|--------------------|--------------------|-------------------------------------|
| **桥接模式** | 是 | 是 | 是 | 需要虚拟机访问外部网络,适合开发、生产环境 |
| **NAT模式** | 是 | 是 | 是 | 简单的网络访问,适合一般用户和测试环境 |
| **仅主机模式** | 否 | 是 | 是 | 需要隔离网络的测试环境,宿主机与虚拟机通信 |
| **仅主机 + NAT** | 是 | 是 | 是 | 虚拟机访问外部网络但不被外部访问 |
| **内部网络模式** | 否 | 否 | 是 | 完全隔离的虚拟网络环境,适合多虚拟机测试 |
---
## 选择建议:
- **如果你想让虚拟机拥有一个独立的 IP 地址并且可以直接访问外部网络**,选择**桥接模式**。
- **如果你只需要虚拟机访问外部网络而不希望它被外部访问**,选择**NAT模式**。
- **如果你只希望虚拟机和宿主机之间进行通信,且不需要外部访问**,选择**仅主机模式**。
- **如果你希望虚拟机之间进行完全隔离的通信,并且虚拟机不能访问外部网络**,选择**内部网络模式**。
@@ -0,0 +1,24 @@
物理设备要安装
gdb server 通过离线安装包安装
focal (20.04LTS)
https://packages.ubuntu.com/focal/gdbserver
jammy (22.04LTS)
https://packages.ubuntu.com/jammy/gdbserver
sudo dpkg -r openssh-client
oracular (24.10)
https://packages.ubuntu.com/oracular/devel/gdbserver
openssh-server 通过网络安装
参考 https://developer.aliyun.com/article/1488008
sudo apt install openssh-server
sudo systemctl status ssh
iso 下载
https://releases.ubuntu.com/
https://releases.ubuntu.com/20.04/
https://releases.ubuntu.com/22.04/