实现方法

以下几种方法可以实现PnetLab公网访问:

  1. 有公网IP的直接使用即可(公网ipv4或ipv6);
  2. 无公网IP,可以使用vps配合frp实现内网穿透,实现PnetLab的官网访问;

vps配合frp实现PnetLab公网访问

环境准备

具体步骤

  1. 下载frp软件

  2. 将frps上传至云服务器

    frps.toml、frps

  3. 修改配置文件

    frps.toml

    # frp服务监听端口
    bindPort = {frps服务端监听端口号}
    # frp http监听端口
    vhostHTTPPort = {frps http 监听端口号}
    # token用于实现简单的身份校验,如果设置了那么客户端和服务器的token必须一致(可选)
    auth.token = "token"
    # 开启frp Dashboard 可以查看frp的状态以及代理统计信息。(可选)
    webServer.addr = "0.0.0.0"
    webServer.port = 7400
    webServer.user = "admin"
    webServer.password = "admin"
    

    frpc.toml

    # 服务端IP和监听端口设置
    serverAddr = "{frps服务端IP地址}"
    serverPort = {frps服务端监听端口号}
    auth.token = "token"
    
    [[proxies]]
    name = "PnetLab"
    type = "http"
    localIP = "127.0.0.1"
    localPort = 80
    customDomains = ["云服务ip或域名"]
    # 下面设置后会先要求验证身份(可选)
    httpUser = "admin"
    httpPassword = "QAZqaz123!@#"
    
  4. 云服务器防火墙放通对应端口

    主要是:bindPort和vhostHTTPPort必须放通

    webServer.port设置了的话也要放通

  5. 云服务器上运行frps

    命令行

    nohup frpc -c frpc.toml 2>&1 &
    

    Dokcer运行

    !注意,frps的存放路径

    docker run --restart=always --network host -d -v /root/frps/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
    
  6. PnetLab上运行frpc

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

    Dokcer运行

    !注意,frpc的存放路径

    docker run --restart=always --network host -d -v /root/frps/frpc.toml:/etc/frp/frpc.toml --name frps snowdreamtech/frpc