Pre
之前618从pdd上买了配件,第一次尝试自己组装了电脑,本意是作为炼丹炉,不过毕竟是自己的电脑不像服务器可以一天到晚打黑工,还是用来开发就好,测测代码跑跑ai。
没显示器——远程连接(后来还是买了,而且今天才发现买的那款大降价,唉),没键鼠——远程连接,没网络——二手路由刷openwrt去中继,操作系统——win11+wsl2
安装win11
在MSDN下载镜像,使用rufus制作启动盘,插入主机,在开机时进入bios更改启动顺序,保存重启进入安装程序,最后用KMS激活即可
摆弄网络
刷openwrt
首先是女生自用7成新不知名校园网破解百兆路由器RP-Link未知型号,10r带电源带网线:
PR-Link
首先SSID“七啊七啊七”,不知道密码,reset无效,直接插网线进入管理页面,改了lan口ip,重启半天,感觉不是很靠谱,没有中继选项。
研究了一下决定刷一个openwrt,所幸原本是用来破解校园网的,发现已经刷好了breed,通过原作者的启动工具成功进入breed页面。本来是想自己编译一个,教程都找好了,但是听说很慢,还是放弃了,毕竟也没有linux环境。
[注]: 刷固件需谨慎,另一个斐讯302c太丐了,感觉是刷不了,空间都不够,还是硬上了nano的老毛子,结果直接成砖了,web页也进不去,ssh不认,连交换机都做不了,悲。
路由中继
二手路由器的硬件
scan+join成功上网
对比cpu、内存闪存条件,从openwrt官网找到了个差不多的华硕路由器固件asus_rt-n14u-squashfs-sysupgrade.bin,一次成功。然后捣鼓了一下,lan口改成其他网段,join了宿舍的路由器,成功上网,但是速度感人。实际上到这里已经可以了,但是要远程控制主机就必须把笔记本也接入这个副路由,两个一起卡(后来发现好像是频段设置的问题,20MHZ两个都正常速度了)
于是想做个dhcp转发之类的,把主机也拉到主路由的网段里,这样笔记本就能接入主路由来控制它,完美。好像没用这方面的教程感觉好少,本想用openwrt的package,包是挺多,但是怎么都没有介绍,找了个看起来像这么回事的 isc dhcrelay,跟着论坛一顿乱来,根本不行。也试过恩山论坛的方法,ssh连上去一通操作,无效。
然后在openwrt luci的一个dhcp relay选项瞎填,无效。后面看到了比较官方的中继教程,relayd+luci-proto-relay方案,照着做成了!现在笔记本是快了,接在主路由,也可以控制主机,但是远程控制异常卡顿,敲个命令行字符都延迟半天,几乎没法用。怀疑是线的问题,然而根本不可能,后面也证实线并非瓶颈。而且该方案下笔记本无法ping主机,反过来可以,延迟却也很高很高,1000ms左右。
捣鼓半天不仅丢了网络,连键盘都失灵了。后面想试试WDS方案,然而主路由是买的破解校园网路由器,不支持ssh,也没有wds模式,直接从副路由开始配置,搞了半天确认好几次就是没网,wireless页面看得到速率,但没有主路由的ip,感觉还是主路由不支持导致的。
最后reset,返璞归真,本来想主机直接接主路由试试到底是什么的问题(有点怀疑win11),然而副路由重新设置重新join后一切正常了,稍慢,但至少能用。
桥接主路由
步骤1 interface-lan配置
步骤2 client配置
步骤3 master配置
步骤(4) interface全貌
步骤(5) 设置dns forwarding
中继步骤:
- 副路由lan口ip改成跟主路由不同的网段,如
192.168.23.1
- scan+join,填入主路由密码,channel似乎无所谓,auto也行,width默认20MHZ,network选join时自己创建的接口(这里改了名,默认叫wwan)
- 想无线连接副路由add一个无线网络,mode保持默认的access point,network改为lan
- interface能看到wan_n已经得到了主路由分配的ip
192.168.1.192
,连主路由时可以用它进入副路由的luci - 设置dns为主路由ip或dns服务器地址即可上网,(但后来发现好像不填也行?)
尾声
最后笔记本无线接入副路由,主机用网线插着,可用。其实想一想一开始直接买贵一点的路由器,或淘宝二手的,或搞个pcie无线网卡,或那种小巧的usb网卡,也不至于这样折腾,浪费不少时间。
操作系统
wsl安装
这也是非常纠结的一点,由于硬盘小,没音响,没键鼠,跟游戏可以说绝缘,但win11还是比linux香,至少ai画图整合包方便(虽然玩不明白)。决定搞个wsl,直接照官网教程即可,wsl --install
默认在c盘安装最新的ubuntu。
迁移wsl
步骤,以下命令都在powershell执行:
- 停止正在运行的wsl:
wsl --shutdown
- 查看已安装的分发版
wsl -l --all -v
- 根据NAME一列导出wsl为tar文件到D盘
wsl --export {NAME} D:\{filename}.tar
- 注销C盘的分发版
wsl --unregister {NAME}
- 重新导入并安装分发版在D盘
wsl --import {NAME} D:\{target dir} D:\{filename}.tar --version 2
- 设置默认登陆用户为安装时的用户名
ubuntu2004 config --default-user USERNAME
- 删除导出的tar文件
del D:\{filename}.tar
笔记本ssh连接wsl
其实直接在主机上装个vscode,配上官方的远程开发拓展包是最方便舒服的,但考虑到在主机上开发还得装个git,然后每次代码得同步来同步去的,最重要的是没有键鼠!还是得ssh
思路是wsl安装ssh,开启服务然后在外层win11设置端口转发(因为不想用win11的22端口),局域网直接ssh连接win转发的端口。
ref: 如何在Ubuntu 22.04 LTS上安装/开启SSH协议
ref: wsl2 设置端口映射
ref: 从局域网 (LAN) 访问 WSL 2 分发版
ref: 如何用笔记本ssh连接局域网内其他电脑上的wsl2 ubuntu
ref: windows: 防火墙设置规则(给ssh开端口/ip)
步骤3,4,5 ssh状态确认
步骤7 查看wsl的ip地址
步骤9 打开防火墙新建规则
步骤9 打开防火墙新建规则2
步骤9 设置规则作用域
步骤11 查看win11上ip地址。第二个是对接wsl的虚拟以太网
步骤12 ssh连接wsl测试
步骤13 vscode安装 Remote SSH + Remote Explorer并配置
- 更新Ubuntu
sudo apt update && sudo apt upgrade
,更新软件包列表,检查可用的软件包更新 并 安装可用的软件包更新 - 安装OpenSSH
sudo apt install openssh-server
, - 使用systemctl启动SSH服务
sudo systemctl enable --now ssh
。禁用命令:sudo systemctl disable ssh --now
删除命令:sudo apt autoremove openssh-server
另一个启动sudo service sshd start
或sudo /etc/init.d/ssh start
&sudo /etc/init.d/ssh stop
- 检查SSH服务运行状态,出现active running
sudo systemctl status ssh
或service sshd status
或重启sudo service ssh restart
- 检查防火墙状态,inactive就是没开
sudo ufw status
,开了的话据说可以sudo ufw allow ssh
放行ssh - 测试
ssh localhost
能连说明成功 或ps -e |grep ssh
看得到sshd即可 - 新增转发规则
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=23333 connectaddress=172.30.249.53 connectport=22
listenaddress是win11监听的地址,全0表示局域网其他机器都可以来连接,listenport指win11监听的端口,connectaddress为wsl的ip地址,在wsl里执行ip a
查看,connectport是wsl的端口,这里设置ssh的默认端口22。注意在win11用ipconfig
看的是自己的ip - 查看转发规则
netsh interface portproxy show all
,刚才设置的有出现就好。此外netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=23333
就可以把它删掉 - 打开win11防火墙——入站规则——新建规则——端口——TCP——22——默认,下一页——默认,下一页——名字随便
- 在规则列表里找到刚才新建的规则
ssh mapping
,作用域里面选下列IP地址,填入本局域网的CIDR,应用即可 - win11
ipconfig
拿到ip地址,选本局域网网段那个 - 在局域网另一台电脑上输入
ssh {username}@{win11 ip} -p 23333
,username是wsl的用户名,输入密码,成功! - vscode在侧边栏打开ssh配置,Host填win11用户名,HostName填win11 ip,User是WSL的用户名,Port是win11开放的端口
- 方便起见可以在WSL里设置git仓库,后面有source control的提示
- 方便起见,有条件还是直接在win11上用vscode的远程开发拓展包最舒服
[注]: 一开始配好一直连接不上,而主机win11、wsl内都是可以的,后面才发现是防火墙的问题
外网远程连接win11
毕竟还得去实验室打卡,有没有一种可能我能在实验室远程连接宿舍的win11? —— 端口转发
步骤1
步骤2
步骤3
- 设置副路由端口转发,network-firewall-port forwards-add,这里由于已经加好了因此会有一条规则
- 点击add后如图进行设置,要ssh的话大概把internal port改为22即可
- 主路由如法炮制,找到端口转发的地方,只是要注意内部IP地址应该填主路由给副路由分配的IP,而不是副路由自己网段的IP
完工,还是比较简单的,实际上比较担心的是宿舍的电费和主机的散热问题
标签:Vscode,ip,Ubuntu22.04,sudo,wsl,ssh,win11,Win11,路由 From: https://www.cnblogs.com/Stareven233/p/17554926.html