前言

在日常生活中使用的服务器大多是Linux系统,但也有很多情况不得不使用windows系统。例如这个软件只能在windows上运行,手抖了买错了,等等。

Windows对服务器这块的软件,资源,社区等等,都不是很好。简单说,你遇到问题了,又没导师,社区人又少,基本就无法解决。所以还是用linux系统。

多年前一个新服务器入手后,先得搭建环境,几乎得小半天,这个过程很是困扰。目前市面上大致有海外版的宝塔面板和1Panel 面板做的不错,推荐使用1Panel。

条件

  1. 从外网可以访问的Windows系统

  2. vmware workstation 17 Pro

    • 网络连接方式为桥接

    • 在Windows服务器上的合理安装方式,请自行百度。

  3. Linux系统

    • 新手用Ubuntu系统,社区人多。

    • centos系统省电,更新少,稳定,社区人也有一些。

    • 服务器性能强的,只是玩玩就选Ubuntu系统

  4. 稳定的环境

    • 稳点的电源

    • 至少稳定的100Mps上传带宽

  5. 最好有个域名(非必要,ip+端口亦可访问)

    • 申请好SSL证书

netsh

Windows使用软件为netsh

netsh命令是一个Windows操作系统中的命令行工具,用于配置和管理网络设置。它可以用于配置网络接口、防火墙、路由表、DNS设置等。通过netsh命令,用户可以在命令行界面下执行各种网络相关的操作,从而使网络配置更加灵活和可定制化。用户可以使用netsh命令来查看当前网络配置、修改网络设置、创建和删除网络策略等。netsh命令的使用需要管理员权限。

netsh命令有许多常用的子命令,以下是接下来使用的命令及其功能的详细解释:

  1. netsh interface portproxy show all

  • 1. "netsh"是netsh命令行工具的名称。

  • 2. "interface"指定了要操作的网络接口相关的命令。

  • 3. "portproxy"是用于配置和管理端口代理的子命令。

  • 4. "show all"表示显示所有当前配置的端口代理规则。

当你运行"netsh interface portproxy show all"命令时,它会列出所有已配置的端口代理规则的详细信息,包括本地监听地址、本地监听端口、远程目标地址和远程目标端口。

例如,命令的输出可能如下所示:

```

Listen on ipv4: Connect to ipv6:

地址 端口 地址 端口

-------------------- ------- --------------------- ------

127.0.0.1 80 ::1 8080

192.168.0.1 443 fd00::1 8443

```

上述输出表示有两个端口代理规则已经配置。第一个规则将本地的IPv4地址127.0.0.1的端口80映射到远程的IPv6地址::1的端口8080。第二个规则将本地的IPv4地址192.168.0.1的端口443映射到远程的IPv6地址fd00::1的端口8443。

  1. netsh interface portproxy add v4tov4 listenaddress=192.168.11.14 listenport=22 connectaddress=192.168.11.36 connectport=22

用于添加一个基于IPv4的端口代理规则。以下是对该命令的详细解释:

1. "add"表示要添加一个新的端口代理规则。

2. "v4tov4"表示这是一个从IPv4到IPv4的端口代理规则,即监听IPv4地址并将连接转发到另一个IPv4地址。

3. "listenaddress=192.168.11.14"指定了要监听的本地IPv4地址为192.168.11.14,这是代理服务器接收连接的地址。

4. "listenport=22"指定了要监听的本地端口为22,这是代理服务器监听的端口号。

5. "connectaddress=192.168.11.36"指定了要转发连接到的远程IPv4地址为192.168.11.36,即目标服务器的地址。

6. "connectport=22"指定了要转发连接到的远程端口为22,即目标服务器上的目标端口号。

在此示例中,这个规则将监听本地IPv4地址192.168.11.14的端口22,并将连接转发到远程IPv4地址192.168.11.36的端口22。

  1. netsh interface portproxy delete v4tov4 listenaddress=192.168.11.14 listenport=22

用于删除一个基于IPv4的端口代理规则。以下是对该命令的详细解释:

1. "delete"表示要删除一个现有的端口代理规则。

2. "v4tov4"表示这是一个从IPv4到IPv4的端口代理规则。

3. "listenaddress=192.168.11.14"指定了要删除的代理规则的监听本地IPv4地址为192.168.11.14。

4. "listenport=22"指定了要删除的代理规则的监听本地端口为22。

在此示例中,这个命令将删除监听本地IPv4地址192.168.11.14的端口22的代理规则。

原理

通过netsh命令

将一台可以在公网访问的Windows服务器

的端口映射到vmware workstation 17 Pro的Linux系统的指定端口

方法

讲述从外网访问内网IP地址为192.168.11.36的linux系统的22号端口方法

  1. 使用管理员权限打开Windows的Windows PowerShell软件

  2. netsh interface portproxy add v4tov4 listenport=22 connectaddress=192.168.11.36 connectport=22

  3. netsh interface portproxy show all

确认结果

侦听 ipv4: 连接到 ipv4:

地址 端口 地址 端口

--------------- ---------- --------------- ----------

* 22 192.168.11.36 22

  1. netsh interface portproxy delete v4tov4 listenport=22

不需要时删除

效果,可以从Windows PowerShell直接输入自身内网ip:22访问

ssh xxx@内网Ip:22

也可以从外网直接访问

ssh xxx@Windows服务器外网Ip:22

以上为ssh服务使用方法

同理重复1-2步骤,可以添加

38103端口的1Panel面板

7800端口的宝塔面板

8090的Halo

8080的onlyoffice

80 443的网络服务器

反向代理

等等。