FRP内网穿透--实现公网ip远程访问内网8080端口

写在前面,frp内网穿透的教程还挺多的,博主写本博客的目的是作为一个学习记录,如果对你有些许帮助那也算荣幸之至了。

声明:

        本博客参考自:

        【Linux】腾讯云服务器,使用FRP内网穿透,端口映射,远程访问内网ubuntu机器_洪城布衣的博客-CSDN博客_腾讯云配置端口映射这里写目录标题一、需求分析1.1 情况1.2 需求1.3 解决方案二、安装FPR2.1 限定2.2 云服务器(服务端)安装FPR一、需求分析1.1 情况有一台具有公网ip的腾讯云服务器Linux CentOs7.6版本有一台局域网内的服务器(ununtu 1604版本),局域网IP为5.5.3.240,这台服务器能访问外网,但外网无法穿透找到该机器1.2 需求我有一台不在那个局域网内的机器,想访问局域网内的机器1.3 解决方案搭建FPR服务,通过腾讯云服务器间接访问局域网内的机器二、安装Fhttps://blog.csdn.net/qq_39165617/article/details/121430112使用阿里云服务器配置frp实现Windows系统RDP内网穿透 - 走看看frp需要有vps服务器做代理转发!!! 说下环境: frp服务器:公网上一个Centos7.5系统的ECS; frp客户端:内网中一台windows10系统并开启RDP服务的PC。 1、下载frp到http://t.zoukankan.com/jasy-p-12275301.html

一、任务需求与方案

1.1 需求

        最近项目有个任务是实现 通过公网ip + 端口号 来访问内网的平台系统(在8080端口)。

        其中,具有公网ip的服务器是阿里云服务器(Linux CentOS 8 的版本);内网的平台系统运行在 Win10 机子(目标)上。

1.2 方案

分别在服务器和本地机子配置frp,通过云服务器间接访问目标。

二、服务器端口开放

想要通过公网访问服务器的端口,需要为这个端口设置添加规则。

进入服务器控制台,找到安全组,然后按照以下步骤手动添加要开放的端口号。

有两个端口号需要添加:

  • frp服务的端口号:7000【这个是你想要用frp端口必须开启的】
  • 8080端口【映射到目标机器的8080端口,你可以自己设定,但是要保证之后frp配置文件里的端口号设定的和你这里一致】

                                        

FRP内网穿透--实现公网ip远程访问内网8080端口_第1张图片

三、frp下载与配置

3.1 frp下载

FRP内网穿透--实现公网ip远程访问内网8080端口_第2张图片

 根据自己的需求下载对应的版本:

  • 通过github:frp下载地址 ;不过直接下载好像得通过一些技术手段加快下载速度【你懂的】
  • 为此博主分享一个下载好0.38的版本:密码:i593 ;如果你有需要下载其他版本,自己又下载不了的,可以私聊博主帮你代下

3.2 frp安装配置

3.2.1 明确服务端和客户端

下载的frp包中都会含有两类文件:客户端文件frpc命名的,c对应的是client的意思;服务端文件frps命名的,s对应的是server的意思。

FRP内网穿透--实现公网ip远程访问内网8080端口_第3张图片

 那么首先明确,我以阿里云服务器作为服务端,以本地Win10电脑作为客户端

 3.2.1 云服务器的frp配置

如果你熟悉linux指令,那么直接完成下列步骤即可:切记,我把云服务器作为的是服务端,所以对云服务器的frp文件操作的都是frps,你得根据自己的设定来【博主刚开始配置时傻乎乎地跟着别人执行frpc...】

  1. 将下载的linux版本的frp安装包传至服务器
  2. 执行 tar -zxvf frp_0.38.0_linux_amd64.tar.gz 解压
  3. 执行 cd frp__0.38.0_linux_amd64/ 进入文件夹
  4. 在该文件夹目录内执行:vim frps.ini 
  5. 在该文件内添加一行: vhost_http_port = 8080 【这里得与你服务器设定开放的端口号一致
  6. 启动运行:./frps -c ./frps.ini

如果成功你将会得到:

 3.2.2 云服务器配置过程中你可能会遇到的问题解决方法

1. 如果你运行./frps -c ./frps.ini之后发现配置错了,就去再次修改frps.ini文件,再次运行./frps -c ./frps.ini,提示如下错误:

这是因为这个服务已经启动的意思,你可以通过 netstat -tanlp指令查询7000端口对应的PID,然后执行指令kill -9 对应的PID,杀死进程,然后再执行./frps -c ./frps.ini

FRP内网穿透--实现公网ip远程访问内网8080端口_第4张图片

2.  如果迟迟未显示successful,则可能是因为你的服务器开启了防火墙,你的端口并未被加入防火墙白名单,下面给出一些操作防火墙的指令,你可以根据需要选择执行:

1. 查看防火墙状态 : systemctl status firewalld

2. 关闭防火墙:systemctk stop firewalld

3.开启防火墙:systemctl start firewalld

4.重启防火墙:systemctl restart firewalld

5.查看防火墙开放的端口:firewall-cmd --list-port

6.查看7000端口是否开启: firewall-cmd --query-port=7000/tcp

7.开放7000端口:firewall-cmd --permanent --add-port=7000/tcp 【permanent为永久生效】

8.每次对防火墙的修改都需要重启防火墙:

    firewall-cmd --reload

 3.2.3 Windows10的frp配置

  1. 将frp安装包解压,此时win10作为的是客户端,故我们需要操作的是frpc文件。
  2. 双击打开frpc.ini文件,加入以下信息,这里是能完成内网穿透的关键,也就是通过访问公网ip:port 此处为 xxx:8080可以访问win10电脑的8080端口FRP内网穿透--实现公网ip远程访问内网8080端口_第5张图片
  3. 打开cmd终端,进入对应的frp文件夹,执行指令:frpc.exe -c frpc.ini,出现以下结果则为成功FRP内网穿透--实现公网ip远程访问内网8080端口_第6张图片

四、连接测试

我在win10运行java前后端项目之后,直接在网址中输入公网ip+8080,可以成功访问。

 FRP内网穿透--实现公网ip远程访问内网8080端口_第7张图片

 五、frp开机自启动设置

5.1 服务器端自启动设置

1.执行指令:sudo vim /etc/systemd/system/frps.service创建服务,编辑为:

[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frp_0.38.0_linux_amd64/frps -c /root/frp_0.38.0_linux_amd64/frps.ini		# 编辑的时候一定要删除注释 这里更改为自己安装frps的绝对路径
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target

2.开启自启动

#启动frps
systemctl daemon-reload
systemctl start frps
#设置为开机启动
systemctl enable frps

5.2 win客户端自启动设置

1.下载软件NSSM:NSSM - the Non-Sucking Service Manager

2.解压后打开cmd进入对应的目录:cd d:D:\nssm-2.24-101-g897c7ad\win64

3.执行指令: .\nssm.exe install      

 4.填写对应的信息

FRP内网穿透--实现公网ip远程访问内网8080端口_第8张图片

你可能感兴趣的:(开发,Linux,tcp/ip,p2p,网络协议)