💻 第一步:准备工作

在开始配置前,需要确认以下几点:

  1. 阿里云主机(服务端):确保你的阿里云ECS实例有公网IP,且操作系统为Linux(本文以CentOS/Ubuntu为例)。

  2. 你的电脑(客户端)

    • VMware虚拟机网络:关键一步!请将虚拟机的网络模式设置为桥接模式,并为其配置一个静态内网IP(例如 192.168.1.100)。这样可以确保虚拟机的IP地址不会变化,且能与你的电脑互相通信。

    • 确认服务:确认你要穿透的虚拟机服务(如SSH的22端口、远程桌面的3389端口或Web服务的8080端口)已经正常启动并监听。

☁️ 第二步:配置阿里云主机(服务端)

在阿里云主机上执行以下操作:

  1. 开放安全组端口:登录阿里云控制台,找到你的ECS实例,进入“安全组”配置。在“入方向”规则中,至少添加以下端口的放行策略:

    • 7000:FRP主服务端口,用于客户端连接。

    • 7500:FRP仪表盘端口,用于查看连接状态(可选但推荐)。

    • 6000(或其他你自定义的端口):用于最终访问虚拟机的端口。这一步很容易忘,务必确认!

  2. 下载并配置FRP服务端

    • 下载:通过SSH连接上你的阿里云主机,下载与你的操作系统匹配的FRP安装包。建议选择最新的稳定版本(如 v0.58.1 或更高)。

    wget https://github.com/fatedier/frp/releases/download/v0.67.0/frp_0.67.0_linux_amd64.tar.gz
    tar -zxvf frp_0.67.0_linux_amd64.tar.gz
    cd frp_0.67.0_linux_amd64
  3. 配置 (frps.toml):编辑服务端配置文件 frps.toml,内容如下:

    bindPort = 7000
    auth.token = "这里填写一个你自己设定的复杂密码,例如:MyToken@123"  # 客户端连接时需要用到
    
    webServer.addr = "0.0.0.0"
    webServer.port = 7500
    webServer.user = "admin"      # 仪表盘登录用户名
    webServer.password = "admin"  # 仪表盘登录密码
  4. 启动:在 frp_0.67.0_linux_amd64 目录下,运行以下命令启动服务端:

    nohup ./frps -c frps.toml > frps.log 2>&1 &

    启动后,你可以访问 http://你的阿里云公网IP:7500,用刚才设置的用户名密码登录,查看服务端运行状态。

🖥️ 第三步:配置本地虚拟机(客户端)

在你的VMware虚拟机中操作,因为虚拟机通常也是Linux系统,步骤与服务端类似。

  1. 下载FRP客户端:在虚拟机中,下载与服务端版本完全相同的FRP安装包,并解压。

    wget https://github.com/fatedier/frp/releases/download/v0.67.0/frp_0.67.0_linux_amd64.tar.gz
    tar -zxvf frp_0.67.0_linux_amd64.tar.gz
    cd frp_0.67.0_linux_amd64
  2. 配置客户端 (frpc.toml):编辑客户端配置文件 frpc.toml,这是实现穿透的核心。

    serverAddr = "你的阿里云公网IP"
    serverPort = 7000
    auth.token = "MyToken@123"  # 必须与服务器端的token完全一致
    
    [[proxies]]
    name = "vm-ssh"             # 代理名称,可自定义
    type = "tcp"                 # 协议类型
    localIP = "127.0.0.1"        # 虚拟机的本地IP,如果服务在本机就写127.0.0.1
    localPort = 22               # 虚拟机内服务的端口,比如SSH是22
    remotePort = 6000            # 阿里云主机对外开放的端口(需在安全组放行)
    • 配置解读:这段配置的意思是,将本机(虚拟机)的22号端口(SSH服务)映射到阿里云主机的6000号端口上。之后,任何人访问阿里云主机的6000端口,就等同于访问你虚拟机的22端口。

  3. 启动客户端:在虚拟机中运行客户端。

    ./frpc -c frpc.toml

    如果看到 start proxy success 之类的日志,说明连接成功。

🚀 第四步:连接测试与高级用法

  1. 进行连接测试

    • 现在,在你的任何一台可以上网的电脑上(比如你的笔记本),尝试通过SSH连接你的虚拟机:

      ssh 你的虚拟机用户名@你的阿里云公网IP -p 6000
    • 如果能够成功登录,那么恭喜你,内网穿透已经搭建成功!

  2. 映射更多服务

    • 如果你想访问虚拟机的其他端口(如远程桌面3389或一个Web服务8080),只需在客户端的 frpc.toml 文件中,按照 [[proxies]] 的格式,继续添加新的配置块即可。

      [[proxies]]
      name = "vm-rdp"
      type = "tcp"
      localPort = 3389
      remotePort = 63389  # 另一个公网端口,也需要在安全组开放
      
      [[proxies]]
      name = "vm-web"
      type = "tcp"
      localPort = 8080
      remotePort = 68080


文章作者: 楚少爱看雪
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 楚少爱看雪
学习 Study
喜欢就支持一下吧