如何将wsl配置为一台局域网服务器

推荐你阅读
互联网大厂万字专题总结
Redis总结
JUC总结
操作系统总结
JVM总结
Mysql总结
微服务总结
互联网大厂常考知识点
什么是系统调用
CPU底层锁指令有哪些
AQS与ReentrantLock原理
旁路策略缓存一致性
Java通配符看这一篇就够
Java自限定泛型
动态代理详解
技术分享
如何vscode中刷力扣
如何用Jmeter压测
如何将wsl配置为一台局域网服务器

校园网内的另一台设备访问 wsl

wsl 和 win 同为运行在 hyper-v 上的虚拟机,win 直接连接实际网卡,连接学校校园网。
wsl 默认采用 NAT 模式,这意味着 wsl 和 win 上都有一块虚拟网卡,配合虚拟的路由器和交换机,再次组成一个内网。由于 win 和 wsl 都有着虚拟网卡,因此他们都有着相应的内网 ip,同时虚拟的路由器(网关)也有着一个网关 ip(路由器内网端口的内网 ip),虚拟路由器的外网端口连接着实际网卡,其 ip 等于 win 的校园网 ip。
wsl 和 win 是可以相互 ping 通的(因为在同一个局域网内),但是校园网内的另一台设备(比如 mac),由于 NAT 的限制是无法主动访问 wsl 的,但是 wsl 可以主动访问 mac。
有两种方法可以解决这个问题,第一种方法是更改 wsl 为桥接模式,桥接模式可以使得 wsl 直接连接物理网卡并拥有校园网内网 ip,另一种方法是设置 win 的端口转发,将 wsl 的一些需要用到的端口暴露出来。
什么是端口转发呢?我们知道在 NAT 中,内网某台机器的 TCP 报文段到达 NAT 网关(路由器)之后,其目标 IP 和目标端口不变,源 IP 换成路由器外网端口的 IP,源端口换成 NAT 分配的一个随机端口,同时 NAT 会记录这个更换的映射。在 NAT 网关收到返回的 TCP 报文段时,会根据之前的映射关系,将目标 IP 换成内网相应机器的内网 IP,端口换成记录的内网机器相应端口,然后通过局域网转发给内网机器。这也就是为什么内网机器可以主动访问外网机器,而外网机器不能主动访问内网机器(因为到达 NAT 后没有相应的 NAT 映射记录)。而端口转发就是自己创建一条 NAT 映射记录,核心在于 NAT 网关某个端口映射内网的某个 IP 和端口。
win 中 NAT 映射(端口转发)可以通过以下命令完成:

  • 增加转发规则,以 80 端口为例
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=wsl虚拟网卡ip
  • 查看所有已转发的端口
netsh interface portproxy show all
  • 重置转发规则(删除所有规则)
netsh interface portproxy reset

我们可以通过上述命令开放一些端口(比如 ssh 的 22,mysql 的 3306,redis 的 6379)
下面是常用服务的端口开放:

# ssh
netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=172.20.5.187

# mysql
netsh interface portproxy add v4tov4 listenport=3306 listenaddress=0.0.0.0 connectport=3306 connectaddress=172.26.17.30

# redis
netsh interface portproxy add v4tov4 listenport=6379 listenaddress=0.0.0.0 connectport=6379 connectaddress=172.26.17.30

# nacos
netsh interface portproxy add v4tov4 listenport=8848 listenaddress=0.0.0.0 connectport=8848 connectaddress=172.26.17.30

# rabbitmq web管理
netsh interface portproxy add v4tov4 listenport=15672 listenaddress=0.0.0.0 connectport=15672 connectaddress=172.26.17.30

# rabbitmq 消息通信
netsh interface portproxy add v4tov4 listenport=5672 listenaddress=0.0.0.0 connectport=5672 connectaddress=172.26.17.30

# es外部通信
netsh interface portproxy add v4tov4 listenport=9200 listenaddress=0.0.0.0 connectport=9200 connectaddress=172.26.17.30

# es集群通信
netsh interface portproxy add v4tov4 listenport=9300 listenaddress=0.0.0.0 connectport=9300 connectaddress=172.26.17.30

# Kibana-es可视化工具
netsh interface portproxy add v4tov4 listenport=5601 listenaddress=0.0.0.0 connectport=5601 connectaddress=172.26.17.30

配置 ssh

查看服务器是否安装了 ssh-server

ps -ef|grep sshd
#root      2859     1  020:29 ?        00:00:00 /usr/sbin/sshd -D

如果没有,安装

apt install openssh-server

允许密码登录,允许 root 登录,重启 ssh

# vim /etc/ssh/sshd_config

PasswordAuthentication yes
PermitRootLogin yes
service sshd restart

为服务器 root 用户设置密码

sudo passwd root

win 配置端口转发

netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=wsl虚拟网卡ip

接下来就可以直接用密码登录服务器 root 用户了

# win
ssh root@wsl内网ip
# mac
ssh root@win校园网ip

安装 mysql

安装 mysql 有两种方式,一种是通过 apt 软件管理器,另一种是手动,我们通过 apt 安装 mysql 8.0
首先需要更换 apt 镜像源,默认镜像源是国外的很慢,当然也可以设置 apt 代理解决。
使用阿里云镜像源:https://developer.aliyun.com/mirror/ubuntu

vim /etc/apt/sources.list # 删掉所有内容,然后粘贴镜像源
apt update # 更新一下

安装 mysql

apt install mysql-server

查看 mysql 状态

service mysql status

启动 mysql

service mysql start

此时 wsl 已经可以连接 mysql 了,但是 win 还无法连接
修改账号权限为%

use mysql;
select host, user, authentication_string, plugin from user;
update user set host = '%' where user = 'root';
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;

修改 mysql 配置文件 my.cnf 允许外部 ip 访问

vim /etc/mysql/my.cnf
# 添加如下
[mysqld]
bind-address = 服务器本地ip
# 重启mysql服务
service mysql restart

为 root 用户设置密码

# 刷新一下
flush privileges;
# 设置密码
ALTER USER 'root'@'%' IDENTIFIED BY '123456';

SHA2 认证改为密码认证(mysql 8.0 默认 SHA2 认证 5.7 默认密码认证)

update user set plugin='mysql_native_password' where user='root';

修改操作系统防火墙和云服务器安全组,放行 3306 端口
现在 win 可以连接 mysql 了,但是校园网内其他机器还不可以
win 配置端口转发

netsh interface portproxy add v4tov4 listenport=3306 listenaddress=0.0.0.0 connectport=3306 connectaddress=wsl虚拟网卡ip

现在校园网内其他机器也可以连接了

安装 redis

apt 安装 redis

apt install redis-server

修改 redis 配置

vim /etc/redis/redis.conf
# 注释掉下面这一行,开放远程访问
bind 127.0.0.1
# 解开下面一行注释,设置redis密码
requirepass yourpassword

重启 redis

/etc/init.d/redis-server restart

win 配置端口转发

netsh interface portproxy add v4tov4 listenport=6379 listenaddress=0.0.0.0 connectport=6379 connectaddress=wsl虚拟网卡ip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/602283.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全之ACL

ACL:访问控制列表——控制列表(策略列表),是一个控制工具。 功能:!、定义感兴趣路由(控制层面)。2、定义感兴趣流量(数据层面)。 例如: 假设在该…

记一次favicon.ico的折腾

某项目需要将前端和后台整合在一起 我也不知道为啥要整合 上面有要求就整呗 正常前端npm run build打包后 dist内会根据设置自动生成favicon.ico文件在根目录下 但由于前后端整合 需要打包后将图标放在dist下的static文件夹里 需要的效果 打包后 index.html里 <link rel&…

vscode与git下载安装

粉丝不过W git下载地址: https://git-scm.com/downloads, 安装git时, 记住你安装Git的路径 vscode下载地址: https://code.visualstudio.com/ 下载完后, 并默认安装好, 你就可以进入配置git的环境变量了, 点击win, 点击设置 在搜索框里搜索, 高级系统设置 点到 高级 , 然后点击…

智慧公厕:数据驱动的新时代公共厕所管理

公共厕所是城市的重要基础设施&#xff0c;直接关系到人民群众的生活质量和城市形象。然而&#xff0c;长期以来&#xff0c;公共厕所的管理问题一直困扰着城市管理者。为了解决这个难题&#xff0c;智慧公厕应运而生。本文将以智慧公厕源头实力厂家广州中期科技有限公司&#…

500的项目研发成本2000?

上个月接了一个小程序的二开项目&#xff0c;功能不多就2个诉求&#xff1a;调整首页数据排序规则&#xff0c;帖子详情增加一个海报&#xff0c;报了一个我认为还比较合适的价格500。 当我拿到代码的那一刻有点小害怕&#xff0c;因为这个客户的之前合作过一次&#xff0c;项…

淘宝订单详情与物流电子面单API接口:提升电商物流效率的利器

前言 在电子商务蓬勃发展的今天&#xff0c;物流作为电商交易的重要环节&#xff0c;其效率和准确性直接关系到消费者的购物体验和商家的运营效率。淘宝作为中国最大的电商平台之一&#xff0c;一直致力于提升物流效率和服务质量。其中&#xff0c;淘宝订单详情与物流电子面单A…

开发中的一些专业术语,POJO、PO...

在 Java 开发中&#xff0c;以下是常见的设计模式和概念&#xff1a; PO&#xff08;Persistent Object&#xff09;&#xff1a;持久化对象&#xff0c;也称为实体类或数据对象。它是与数据库表结构对应的类&#xff0c;通常用于表示持久化数据的实体。PO 类的属性与数据库表的…

重生奇迹MU获取宝石方法

1、商城&#xff1a;商场分为钻石商城和绑钻商城&#xff0c;钻石是直接充值的&#xff0c;绑钻是系统赠送的&#xff0c;两个地方所出售的道具都不一样&#xff0c;绑钻不能在钻石商城中购买。钻石商城中有各个等级的宝石出售&#xff0c;越高级的钻石越贵&#xff0c;不建议平…

[oeasy]python0015_键盘改造_将esc和capslock对调_hjkl_移动_双手正位

键盘改造 &#x1f94b; 回忆上次内容 上次练习了复制粘贴 按键 作用 <kbd>y</kbd><kbd>y</kbd> 复制光标行代码 到剪贴板 <kbd>p</kbd> 粘贴剪贴板中的内容 <kbd>i</kbd> 切换到 插入模式 <kbd>h</kbd>…

网络技术-链路层可靠传输协议

可靠传输 在链路层传输中&#xff0c;可能出现的错误包括数据位出错、分组丢失、分组失序、分组重复等。可靠传输服务希望实现发送端发送什么&#xff0c;接收端就接收到什么。虽然下面将在链路层这一章节中介绍SW、GBN、SR三种协议&#xff0c;但要明确的是&#xff0c;可靠传…

typescript 模块化

模块的概念&#xff1a; 把一些公共的功能单独抽离成一个文件作为一个模块。 模块里面的变量、函数、类等默认是私有的&#xff0c;如果我们要在外部访问模块里面的数据&#xff08;变量、函数、类&#xff09;&#xff0c;需要通过export暴露模块里面的数据&#xff08;&#…

深度解读《深度探索C++对象模型》之C++的临时对象(二)

目录 临时对象的生命期 特殊的情况 接下来我将持续更新“深度解读《深度探索C对象模型》”系列&#xff0c;敬请期待&#xff0c;欢迎左下角点击关注&#xff01;也可以关注公众号&#xff1a;iShare爱分享&#xff0c;或文章末尾扫描二维码&#xff0c;自动获得推文和全部的…

51单片机keil编程中遇到的问题(持续更新)

字符无法打印报错 查看特殊功能寄存器名字的时候也会报错&#xff0c;因为无法编译通过&#xff0c;导致头文件的定义内容无法查找 keil编译中 error C127: ‘xx’: invalid storage class 这种一般是在编写头文件或源文件时&#xff0c;在声明函数的结尾没有添加分号&…

C++——list和string

list与string 前言一、listlist.hList的节点类List的迭代器类list类list.h 完整实现 list.cppList的节点类List的迭代器类list类list.cpp 完整实现 二、stringstring.hstring.cpp 总结 前言 C容器的学习开始啦&#xff01; 大家先来学习list&#xff01; 紧接着string和vector…

PGP加密技术:保护信息安全的利器

随着数字化时代的到来&#xff0c;个人和企业对信息安全的需求日益增长。PGP&#xff08;Pretty Good Privacy&#xff09;加密技术作为一项强大的加密工具&#xff0c;为保护敏感数据提供了一种有效的方法。本文将探讨PGP加密技术的基本原理、应用场景以及其在现代信息安全中的…

LeetCode:盛最多水的容器

文章收录于LeetCode专栏 盛最多水的容器 给你n个非负整数a1&#xff0c;a2&#xff0c;…&#xff0c;an&#xff0c;每个数代表坐标中的一个点(i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线i的两个端点分别为(i, ai) 和 (i, 0)。找出其中的两条线&#xff0c;使得它们与…

如何实现网页上3D模型的展示、浏览和互动?

实现网页上3D模型的展示、浏览和互动&#xff0c;可以通过以下步骤进行&#xff1a; 1、创建3D内容&#xff1a;使用3ds max、Maya、blender、C4D等3D软件制作好3D模型。 2、设计3D应用&#xff1a;把制作好的模型导出为fbx、obj、dae、gltf、glb等格式文件&#xff0c;上传到…

不盖CNAS的证书就是无效的?证书哪些信息是“非必要”?

做设备校准的企业&#xff0c;大多数都是为了拿到仪器校准证书&#xff0c;而说起校准证书&#xff0c;很多人优先就是想到CNAS&#xff0c;CNAS作为校准行业重要的核心资质&#xff0c;无论是校准机构实力的证明&#xff0c;还是满足企业年审的需要&#xff0c;基本上都是关键…

Spring Security Oauth2 JWT 添加额外信息

目录 一、问题描述 二、实现步骤 1、自定义TokenEnhancer 2、配置授权服务器 3、自定义UserDetails的User类 三、参考文档 一、问题描述 Oauth2里默认生成的JWT信息并没有用户信息&#xff0c;在认证授权后一般会返回这一部分信息&#xff0c;我对此进行了改造。 Oauth…

大数据集成平台建设方案-word原件资料

基础支撑平台主要承担系统总体架构与各个应用子系统的交互&#xff0c;第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上&#xff0c;实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台&#xff0c;提出了以下要求&#xff1a; (1) 基于平台的基础架构&…
最新文章