环境:
1、阿里云ECS公网ip:8.134.1.1 (linux系统)
2、家里的win11电脑:本机ip 127.0.0.1
需求:将家里电脑win11中安装的服务81端口访问内容映射到阿里云中的80端口。让外部用 http://8.134.1.1 可以访问到本机的81端口内容。
准备:安全组放行7000以及80端口(frp的端口可以自己修改为其他的)
1、在ECS Linux系统中安装frp客户端。最新版下载地址:https://github.com/fatedier/frp/releases 本教程以下载: frp_0.55.1_linux_amd64.tar.gz 这个包为例。
下载:
解压:wget https://github.com/fatedier/frp/releases/download/v0.55.1/frp_0.55.1_linux_amd64.tar.gz
进入解压后的目录tar -zxvf frp_0.55.1_linux_amd64.tar.gz
显示如下:cd frp_0.55.1_linux_amd64
说明:[root@A-Test frp_0.55.1_linux_amd64]# ll
total 32092
-rwxr-xr-x 1 1001 127 14442648 Mar 12 18:14 frpc
-rw-r--r-- 1 1001 127 142 Mar 12 18:17 frpc.toml
-rwxr-xr-x 1 1001 127 18387096 Mar 12 18:14 frps
-rw-r--r-- 1 1001 127 16 Mar 12 18:17 frps.toml
-rw-r--r-- 1 1001 127 11358 Mar 12 18:17 LICENSE
- frpc是客户端启动脚本
- frpc.toml客户端配置文件
- frps服务端启动脚本
- frps.toml服务端启动配置文件
以本教程为例,本地电脑就是客户端,ECS服务器就是服务端。
启动服务端
启动后显示如下:./frps
启动成功标志是执行命令 “netstat -lunpt” 命令后会看到 7000端口监听。如图。[root@A-Test frp_0.55.1_linux_amd64]# ./frps
2024-03-20 20:54:59.218 [I] [frps/root.go:107] frps uses command line arguments for config
2024-03-20 20:54:59.295 [I] [server/service.go:225] frps tcp listen on 0.0.0.0:7000
2024-03-20 20:54:59.295 [I] [frps/root.go:114] frps started successfully
[root@A-Test frp_0.55.1_linux_amd64]# netstat -lunpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1307/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1078/master
tcp6 0 0 :::7000 :::* LISTEN 1933/./frps
tcp6 0 0 ::1:25 :::* LISTEN 1078/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 781/dhclient
udp 0 0 127.0.0.1:323 0.0.0.0:* 540/chronyd
udp6 0 0 fe80::216:3eff:fe01:546 :::* 919/dhclient
udp6 0 0 ::1:323 :::* 540/chronyd
说明:
显示“successfully”则表示启动成功,但这个是前台启动,终端关闭后服务也会关闭。如果要后台运行这个服务,可以执行如下命令:
后台启动:
如果想达到每次重启服务器后自动启动这个服务,则可以设置为服务或者将上面启动脚本添加到开机自启的文件中。nohup ./frps &
此时服务端配置好了。
2、在客户端配置(本地电脑)
本地电脑是windows11 64位系统。下载:https://github.com/fatedier/frp/releases/download/v0.55.1/frp_0.55.1_windows_amd64.zip
解压:frp_0.55.1_windows_amd64.zip 后得到如图文件: 修改配置文件:
打开frpc.toml修改为如下信息:
打开CMD命令提示符,进入这个目录,输入frpc.exe回车即可运行客户端(也可以打开cmd,然后将frpc.exe拖动到cmd窗口中回车执行)serverAddr = "8.134.1.1" #ECS服务器公网ip
serverPort = 7000 #ECS的frp监听的端口,改成自己的。默认是7000
[[proxies]]
name = "test-tcp" #名字可以默认。如果需要多个端口映射穿透,则修改,不要重名。
type = "tcp" # 端口协议类型,根据自己情况选择tcp还是udp
localIP = "127.0.0.1" #本机ip,这里是本机所以是127.0.0.1默认即可。
localPort = 81 # 本机要对外提供的端口。
remotePort = 80 #这里填写远程端口,也就ECS映射的端口,这里意思是将本机的81端口映射到 ECS的80端口。
如果运行提示:open ./frpc.ini: The system cannot find the file specified. 这请将 “frpc.toml”文件复制一份并改名为frpc.ini即可。
启动成功显示如下:
此时客户端也配置好了。2024-03-20 21:44:58.760 [I] [sub/root.go:142] start frpc service for config file [./frpc.ini]
2024-03-20 21:44:58.767 [I] [client/service.go:287] try to connect to server...
2024-03-20 21:44:58.886 [I] [client/service.go:279] [f759e2b19f636b61] login to server success, get run id [f759e2b19f636b61]
2024-03-20 21:44:58.886 [I] [proxy/proxy_manager.go:173] [f759e2b19f636b61] proxy added: [test-tcp]
2024-03-20 21:44:58.922 [I] [client/control.go:170] [f759e2b19f636b61] [test-tcp] start proxy success
我们登录ECS,执行命令 netstat -lunpt 可以看到如下信息:
其中:[root@A-Test frp_0.55.1_linux_amd64]# netstat -lunpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1307/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1078/master
tcp6 0 0 :::80 :::* LISTEN 1933/./frps
tcp6 0 0 :::7000 :::* LISTEN 1933/./frps
tcp6 0 0 ::1:25 :::* LISTEN 1078/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 781/dhclient
udp 0 0 127.0.0.1:323 0.0.0.0:* 540/chronyd
udp6 0 0 fe80::216:3eff:fe01:546 :::* 919/dhclient
udp6 0 0 ::1:323 :::* 540/chronyd
- 80端口是我们映射后的端口,外部访问ECS公网ip的80端口可以访问到本机的81端口的服务。
- 7000端口是frp服务端默认的端口。
文章评论 本文章有个评论