目录
我想使用windows下的vscode通过ssh来连接ubuntu系统的开发板。
那么我们需要做的就是把win主机和开发板,都设置成静态ip,同一个子网掩码在一个局域网里即可。
下图是我的开发板网络,这时我开发板的eth1接入的是公司路由器,win主机也插入同一个路由器。自动分配ip在同一个网络里了。
现在我不想使用路由器自自动分配。使用开发板的eth0接口直接连接笔记本电脑,这样下工厂调试方便(就不需要接串口,而是使用vscode的ssh连接调试了)。
设置开发板为静态ip
下面是我的开发板的系统信息:ubuntu 22.04
临时修改(reboot后失效)
使用开发板预留的调试串口,临时修改开发板的eth0接口静态ip(开发板reboot后失效):
ifconfig eth0 192.168.0.200 netmask 255.255.255.0 (我用的这个,习惯了)
ifconfig 是较旧的命令,在现代 Linux 系统中推荐使用 ip 命令替代,比如:
sudo ip addr add 192.168.0.200/24 dev eth0
sudo ip link set eth0 up
永久修改eth0接口为静态ip
/etc/netplan下面如果什么都没有,那么可以自己新建一个xxx.yaml文件。
注意!!!:
- xxx.yaml文件权限必须要是 600. (chmod 600 xxx.yaml)
- xxx.yaml里面的层级缩进不能使用tab,要使用空格(2个或者4个空格,我下面的使用的是2个空格进行缩进的)
只需要开发板和PC联成局域网,使用ssh连接的话,使用下面配置即可。
# /etc/netplan/01-static-eth0.yaml
network:
version: 2
renderer: networkd # 明确指定渲染器
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses:
- 192.168.0.169/23
# 完全移除路由配置(不需要网关)
nameservers:
addresses: [] # 清空DNS(不需要外部解析)
下面这样设置可能会出现 偶尔需要重新应用配置文件的情况。
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.0.169/23
routes:
- to : 192.168.0.0/23
via: 192.168.0.1
scope: link
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
下面是把eth0设置成默认路由的配置,不建议使用,放在这里是为了之后有需要可以这样设置:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.0.169/24
routes:
- to : default
via: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
写完之后,就应用xxx.yaml文件的配置
netplan apply
如果出现下面警告,可以忽略。
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
设置win主机为静态ip
使用网线把开发板和win主机连接起来后(我上面eth0的静态ip设置为 192.168.0.169)。
方式1:
win + q:
win下使用vscode连接开发板:
方式2:
桌面没有网络图标的,可以win + i 进入设置,找到 个性化 --> 主题 --> 桌面图标设置。
然后一路 确定 下去即可。
遇到的问题
win主机可以ping通开发板,vscode的ssh也可以连接到开发板,但是开发板ping不同win主机。虽然这个问题不影响使用。
原因:Windows 防火墙可能会阻止 ICMP(用于 ping 请求)流量,但允许 SSH 流量。
win + q 调出系统搜索:
然后开发板就可以在局域网中ping通win主机了。