要使用阿里云服务器通过 frp(一个高性能的反向代理应用)实现内网穿透,您需要在阿里云服务器上部署 frp 服务端,并在本地内网机器上部署 frp 客户端。以下是详细的操作步骤:
前提条件
- 阿里云服务器一台,具有公网 IP,并确保服务器的安全组规则允许所需的端口通信。
- 内网机器一台,需要被访问的服务运行在此机器上(例如,本地的 Web 服务器)。
- frp 程序,可从 [frp 的 GitHub 仓库](https://github.com/fatedier/frp/releases)下载对应的版本。
步骤一:在阿里云服务器上配置 frp 服务端
1. 下载并解压 frp
# 在阿里云服务器上执行
wget https://github.com/fatedier/frp/releases/download/v0.43.0/frp_0.43.0_linux_amd64.tar.gz
tar -zxvf frp_0.43.0_linux_amd64.tar.gz
cd frp_0.43.0_linux_amd64
2. 配置 frps.ini
创建或修改 frps.ini 文件:
[common]
bind_port = 7000 # frp 服务端监听的端口
dashboard_port = 7500 # (可选)frp 仪表盘端口
dashboard_user = admin # (可选)仪表盘用户名
dashboard_pwd = admin # (可选)仪表盘密码
token=88888888 #设置服务端和客户端的令牌,类似于密码,两端有相同的token才可以建立连接
3. 启动 frp 服务端
./frps
是一个可执行文件的路径,它表示当前目录下的 frps
文件,frps.ini作为启动这个frps的配置文件
nohup ./frps -c ./frps.ini > frps.log 2>&1 &
建议:为了保证 frp 服务端在后台运行,可以使用 `nohup` 命令或将其配置为系统服务。
步骤二:在内网机器上配置 frp 客户端
1. 下载并解压 frp
# 在内网机器上执行
wget https://github.com/fatedier/frp/releases/download/v0.43.0/frp_0.43.0_linux_amd64.tar.gz
tar -zxvf frp_0.43.0_linux_amd64.tar.gz
cd frp_0.43.0_linux_amd64
2. 配置 frpc.ini
创建或修改 frpc.ini
文件:
[common]
server_addr = x.x.x.x # 阿里云服务器的公网 IP
server_port = 7000 # 与服务端 bind_port 保持一致
[web]
type = tcp
local_ip = 127.0.0.1 # 本地服务的 IP
local_port = 80 # 本地服务的端口
remote_port = 8080 # 希望映射到阿里云服务器的端口
[web]
部分的名称可以自定义,用于标识这个隧道配置。type
可以是tcp
、http
、https
等,取决于您的需求。
3. 启动 frp 客户端
nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &
同样,您可以使用 nohup
或将其配置为系统服务以保证其在后台运行。
步骤三:配置阿里云安全组
确保在华为云服务器的安全组中开放 FRP 服务端使用的端口(如 7000)以及客户端指定的 remote_port
(如 8080)。
补充知识
阿里云服务器安全组的入方向和出方向
- 入方向:控制从外部网络到云服务器实例的网络流量。即允许哪些IP地址或IP地址范围访问云服务器。一般是使用web浏览器访问frp服务端的web管理页面。
- 出方向:控制从云服务器实例到外部网络的网络流量。即云服务器可以访问哪些IP地址或IP地址范围。一般是允许云服务器访问需要远程操作的客户端。
-
bind_port = 7000
:出方向端口,这个参数指定了FRP服务端监听来自FRP客户端的连接请求的端口。换句话说,这是FRP客户端用来连接到FRP服务端的端口。在这个例子中,FRP服务端将在端口7000上等待来自FRP客户端的连接。 -
dashboard_port = 7500
:入方向端口,这个参数指定了FRP服务端提供Web管理界面的端口。通过访问这个端口,您可以查看FRP服务端的状态和管理配置。在这个例子中,FRP服务端的Web管理界面将在端口7500上可用。
为了使这些设置生效,您需要在阿里云安全组中进行相应的配置:
-
入方向规则:添加一条允许外部网络通过端口7500访问FRP服务端的规则。这将允许您通过Web浏览器访问FRP服务端的Web管理界面。
-
出方向规则:添加一条允许FRP客户端通过端口7000访问FRP服务端的规则。这将允许FRP客户端与FRP服务端建立连接。
关闭服务
pkill frps 可关闭服务端的frp
pkill frpc 可关闭客户端的frp