Loading
0

阿里云ECSfrp内网穿透实现本机端口映射到ECS公网ip访问
被墙跳转TG:@qianhenetwork QQ 851617266

301免备案跳转微信公众号
腾讯云服务器大促销。
华为服务器
前言:家里部署了一个服务,需要对公网访问,但家庭带宽网络运营商有限制,无法直接对外提供服务,本教程介绍通过frp服务内网穿透实现本地服务通过阿里云的ECS的公网ip实现对外提供服务。
环境:
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

说明:
  1. frpc是客户端启动脚本
  2. frpc.toml客户端配置文件
  3. frps服务端启动脚本
  4. frps.toml服务端启动配置文件
问:什么是客户端,什么是服务端?
以本教程为例,本地电脑就是客户端,ECS服务器就是服务端。
启动服务端

./frps

启动后显示如下:

[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

启动成功标志是执行命令 “netstat -lunpt” 命令后会看到 7000端口监听。如图。

[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修改为如下信息:

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端口。

打开CMD命令提示符,进入这个目录,输入frpc.exe回车即可运行客户端(也可以打开cmd,然后将frpc.exe拖动到cmd窗口中回车执行)
如果运行提示: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服务端默认的端口。
此时,在浏览器中输入:http://8.134.1.1/ 就可以打开本地服务的内容了,如图。

问题很简单,适合新手朋友,自己也做个记录,万一后面忘记了。

 
301免备案跳转微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://www.zfcdn.xyz/showinfo-3-36343-0.html
亲爱的:被墙域名跳转TG:@qianhenetwork QQ:851617266,可否收藏+评论+分享呢?
上一篇:巧用curl命令行工具分析http请求各阶段的耗时
下一篇:解决:无法通过IPv6地址登录SSH22端口方法