当前位置: 首页 > wzjs >正文

萧山建设局网站首页影楼行业网站

萧山建设局网站首页,影楼行业网站,苏州网站建设白石,比较出名的外贸公司有哪些突破网络壁垒:实现 Mac SSH 访问 Windows WSL Ubuntu 的最佳实践 背景与痛点 在现代开发环境中,开发者通常会面临不同操作系统之间的协同工作。例如: 主要开发环境位于 Windows 的 WSL Ubuntu 子系统需要从局域网内的 Mac 设备进行远程访问…

突破网络壁垒:实现 Mac SSH 访问 Windows WSL Ubuntu 的最佳实践

背景与痛点

在现代开发环境中,开发者通常会面临不同操作系统之间的协同工作。例如:

  • 主要开发环境位于 Windows 的 WSL Ubuntu 子系统
  • 需要从局域网内的 Mac 设备进行远程访问和管理
  • 由于 WSL 默认采用 NAT 网络隔离(172.x.x.x 网段),导致:
    • 无法直接从局域网设备(如 192.168.x.x)访问 WSL 环境
    • 每次 WSL 重启时可能导致 IP 地址变化,影响网络连接(WSL2 特性)

因此,我们需要配置端口转发解决方案,确保从 Mac 等设备可以无缝访问 WSL 上的服务,包括 SSH 和 HTTP 服务。
在这里插入图片描述

网络架构解析

设备IP 地址网络类型访问关系
Windows 宿主机192.168.1.6局域网可直连
WSL Ubuntu172.22.192.1NAT 虚拟网络仅宿主机可访问
Mac192.168.1.44局域网可直连宿主机

系统级解决方案:Windows 端口转发配置

步骤 1:配置持久化端口转发

我们将使用 Windows 的 netsh 工具 来配置端口转发,确保可以从外部设备(如 Mac)访问 WSL 中的 SSH 服务和 HTTP 服务(如 8080 端口)。

1.1 配置 SSH 端口转发

首先,配置 WSL 的 SSH 服务访问,使 Mac 可以通过 SSH 连接到 WSL 环境。

# 以管理员身份运行 PowerShell
$wsl_ip = (wsl hostname -I).Trim()# 配置 SSH 服务端口转发
netsh interface portproxy add v4tov4 `listenaddress=192.168.1.6 `listenport=5522 `connectaddress=$wsl_ip `connectport=22

这里的配置将 Windows 宿主机的 5522 端口转发到 WSL 上的 22 端口(SSH 服务)。你可以通过 Mac 使用 SSH 连接 Windows 的 5522 端口。

1.2 配置 HTTP(8080)端口转发

接下来,如果你希望 WSL 上的 8080 端口(通常是 Web 服务的端口)能够从 Mac 访问,则需要在 Windows 宿主机上配置另一个端口转发规则。

# 配置 HTTP 服务端口转发
netsh interface portproxy add v4tov4 `listenaddress=192.168.1.6 `listenport=8080 `connectaddress=$wsl_ip `connectport=8080

这样,Mac 就能够通过 192.168.1.6:8080 访问 WSL 上运行的 HTTP 服务(如一个 Web 应用)。

1.3 防火墙配置

为了限制访问权限,我们将防火墙规则配置为只允许来自 Mac 的请求。

# 配置防火墙规则,限制 Mac IP 地址
New-NetFirewallRule -DisplayName "WSL SSH Proxy" `-Direction Inbound `-Action Allow `-Protocol TCP `-LocalPort 5522 `-RemoteAddress 192.168.1.44  # 限制只允许 Mac 访问New-NetFirewallRule -DisplayName "WSL HTTP Proxy" `-Direction Inbound `-Action Allow `-Protocol TCP `-LocalPort 8080 `-RemoteAddress 192.168.1.44  # 限制只允许 Mac 访问

总结:通过以上配置,Windows 宿主机将 5522 端口转发到 WSL 的 SSH 服务(22 端口),同时将 8080 端口转发到 WSL 上的 HTTP 服务(8080 端口)。Mac 设备可以直接通过这两个端口访问 WSL 中的相应服务。

步骤 2:配置自动启动脚本

为了保证每次启动 Windows 时都能自动设置端口转发规则,可以将这些配置写入 PowerShell 脚本并添加到启动任务中。

2.1 保存 PowerShell 脚本

将以下 PowerShell 脚本保存为 wsl_ssh_http_proxy.ps1,路径可以设置为 C:\Scripts\wsl_ssh_http_proxy.ps1

$port_ssh = 5522
$port_http = 8080
$wsl_ip = (wsl hostname -I).Trim()# 清除旧规则
netsh interface portproxy reset# 配置 SSH 服务端口转发
netsh interface portproxy add v4tov4 `listenaddress=0.0.0.0 `listenport=$port_ssh `connectaddress=$wsl_ip `connectport=22# 配置 HTTP 服务端口转发
netsh interface portproxy add v4tov4 `listenaddress=0.0.0.0 `listenport=$port_http `connectaddress=$wsl_ip `connectport=8080# 设置防火墙规则
New-NetFirewallRule -DisplayName "WSL SSH Proxy" `-Direction Inbound `-Action Allow `-Protocol TCP `-LocalPort $port_ssh `-RemoteAddress 192.168.1.44  # 限制只允许 Mac 访问New-NetFirewallRule -DisplayName "WSL HTTP Proxy" `-Direction Inbound `-Action Allow `-Protocol TCP `-LocalPort $port_http `-RemoteAddress 192.168.1.44  # 限制只允许 Mac 访问
2.2 创建计划任务
  1. 打开 任务计划程序
  2. 创建一个新任务,设置触发器为 计算机启动时
  3. 在操作中设置为 powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\wsl_ssh_http_proxy.ps1

步骤 3:SSH 和 HTTP 服务的安全加固配置

3.1 SSH 安全加固

在 WSL 内禁用密码认证,以增强 SSH 服务的安全性。

# 禁用密码认证
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart ssh
3.2 HTTP 服务安全配置

如果你运行的是 Web 服务,确保只允许信任的 IP 地址访问,或者在 WSL 内进行防火墙配置,限制访问权限。

Mac 端专业级连接方案

方法 1:SSH 配置文件优化

为了更好地连接 WSL 环境,建议在 Mac 上配置 SSH 客户端,并指定对应的端口和身份验证文件。

# ~/.ssh/config
Host wsl-sshHostName 192.168.1.6Port 5522User ubuntu_userIdentityFile ~/.ssh/wsl_keyServerAliveInterval 60TCPKeepAlive yesCompression yes

方法 2:建立 SSH 隧道代理

如果你希望通过 SSH 隧道同时访问 SSH 服务和 HTTP 服务,使用以下命令:

# 创建持久化隧道,转发 SSH 和 HTTP 服务
autossh -M 0 -N -L 2222:localhost:5522 -L 8080:localhost:8080 user@192.168.1.6# 连接时直接使用
ssh -p 2222 localhost

高级运维策略

网络诊断工具包

# 连通性测试
mtr -rwzc 10 192.168.1.6# 端口扫描
nmap -sT -p 5522,8080 192.168.1.6# 流量监控
tcpdump -i eth0 port 22 -w ssh_traffic.pcap
tcpdump -i eth0 port 8080 -w http_traffic.pcap

自动化监控脚本

#!/bin/bash
ALERT_THRESHOLD=3
FAIL_COUNT=0while true; do# 检查 SSH 服务if ! nc -z -w 3 192.168.1.6 5522; then((FAIL_COUNT++))elseFAIL_COUNT=0fi# 检查 HTTP 服务if ! nc -z -w 3 192.168.1.6 8080; then((FAIL_COUNT++))elseFAIL_COUNT=0fiif [ $FAIL_COUNT -ge $ALERT_THRESHOLD ]; thenecho "Warning: Service failure detected!"fisleep 60
done

总结

通过这种配置,您可以实现以下目标:

  • 从 Mac 通过 SSH 访问 Windows 上的 WSL 环境
  • 外部设备访问 WSL 上运行的 HTTP 服务
  • 在系统启动时自动配置端口转发,避免重复操作
  • 通过适当的安全加固,提高 SSH 和 HTTP 服务的安全性

这些技术结合使得跨平台的开发环境更加流畅和安全,非常适用于在混合环境中开发与测试的需求。


文章转载自:

http://Q2qdu3Iq.czzpm.cn
http://hpWhaWc1.czzpm.cn
http://YOeNiz14.czzpm.cn
http://8XHLY7h4.czzpm.cn
http://l3JKiEsr.czzpm.cn
http://yUahsBGb.czzpm.cn
http://QpigDTo4.czzpm.cn
http://X9oAROXj.czzpm.cn
http://25G6t4Fe.czzpm.cn
http://RqWrvioC.czzpm.cn
http://Z9EIDVXd.czzpm.cn
http://U6qkmSnU.czzpm.cn
http://1L2pFOc6.czzpm.cn
http://EHB29EEH.czzpm.cn
http://eW3KNPhF.czzpm.cn
http://YdqDsw9x.czzpm.cn
http://jnHz9e8y.czzpm.cn
http://ldkM6Qbr.czzpm.cn
http://flJ03SZ3.czzpm.cn
http://H8u22CtT.czzpm.cn
http://MXtKLwbT.czzpm.cn
http://ERV8Z0Jc.czzpm.cn
http://AEkAA0kU.czzpm.cn
http://GzxKJ39V.czzpm.cn
http://OrDsESmO.czzpm.cn
http://THX9sS0H.czzpm.cn
http://7P7nlxcx.czzpm.cn
http://KEAAke06.czzpm.cn
http://x1AxAdmg.czzpm.cn
http://7gieOM8d.czzpm.cn
http://www.dtcms.com/wzjs/665470.html

相关文章:

  • 朗域装饰口碑怎么样友情链接seo
  • 岳阳市网站建设推广门户网站建设基本情况
  • 建个电子商务网站多少钱网站开发nodejs
  • dede织梦php文章图片网站源码 完整后台 带在线音乐idea制作网站
  • 上海建设集团网站什么是seo优化的有哪些
  • 企业网站psd模板帝国cms 做网站地图
  • 珠海网站建设的公司排名杭州市建设信用网官网
  • 建设网站协议dw如何在网站做弹窗
  • 哪个网站可以接cad图纸做建筑设计网上课程
  • 做网站 做什么网站好外留网站建设
  • 企业网站建设费多少钱wordpress可以做cms吗
  • 做母婴网站赚钱网站域名实名认证查询
  • 做游戏交易网站有哪些福田欧曼配件大全
  • 国外一个专门做配乐的网站平台开发软件
  • 抚顺您做煮火锅网站富阳市建设局网站
  • 台州建站模板搭建已备案网站增加域名
  • 在线公司网站查询承德网站建设流程
  • 传统类型的企业网站做外贸网站需要注意些什么手续
  • 网站设计目标与背景贵州建筑人才网
  • 网站开发交什么税兰州网站建设公司
  • me域名的网站网站的页面布局是什么
  • 宁津哪个网络公司做网站比较好快速的网站设计制作
  • 做网站比较好的公司有哪些深圳深度网站建设
  • 个人网站做什么内容好建网站用什么程序好
  • 微信设计网站建设个人网站界面设计图片
  • 婚恋网站 备案条件网站内容建设的原则是什么意思
  • 制作房地产网站页面做网站 当站长
  • 做网站运营的女生多吗快递物流公司网站模板
  • 网站做海外的防护wordpress高级教程下载
  • 专做正品的护肤品网站有偿做设计的网站