欢迎光临
我们一直在努力

自己家里有公网搭建frp服务器,怎么在国外架设服务器

一、前言

当我们拥有一台内网服务器,又在这台内网服务器上部署了应用,又希望能使用外网访问这台内网服务器,并且还能访问服务器上部署的应用时。这种情况只能花钱购买内网穿透软件来满足访问的要求,那有不有免费且好用的方法呢?

下面为大家介绍一种内网穿透方法。那就是利用frp来反向代理应用,实现以外网服务为桥梁的方式去访问内网服务器。

二、准备工作

  • 外网服务器一台(最好是云服务器)
  • 内网服务器一台(需能访问网络)
  • frp包(linux_X86_64使用的是:frp_0.44.0_linux_386.tar.gz)
  • 下载地址:https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_386.tar.gz
  • 官网地址:https://github.com/fatedier/frp
  • 可在官网下载其他版本

三、外网服务器frp搭建

准备工作都做好了,下面我们开始搭建。

#1、将frp_0.44.0_linux_386.tar.gz 上传到服务器指定路径
#2、解压frp_0.44.0_linux_386.tar.gz
tar -zxvf frp_0.44.0_linux_386.tar.gz

#3、进入frp_0.44.0_linux_386
cd frp_0.44.0_linux_386/

#外网服务器搭建的frp服务器,需要关注的是frps和frps.ini

#frps.ini配置文件内容:
[common]
bind_port = 7000 #bind_port为指定frp的端口号

我们需要在外网服务器启动frps

4、启动frp
./frps -c frps.ini

通常情况我们需要设置后台启动,这里介绍一种systemctl的方式来控制、设置后台frp启动。

vim /lib/systemd/system/frps.service

在frps.service加入以下内容

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

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/zhouyx/frp_0.44.0_linux_386/frps -c /zhouyx/frp_0.44.0_linux_386/frps.ini

[Install]
WantedBy=multi-user.target

#可使用下面的命令控制frps
#启动frps
systemctl start frps
#设置开机自启
systemctl enable frps
#重启应用
systemctl restart frps
#停止应用
systemctl stop frps
#查看应用的日志
systemctl status frps

四、内网服务器frp搭建

#1、将frp_0.44.0_linux_386.tar.gz 上传到服务器指定路径
#2、解压frp_0.44.0_linux_386.tar.gz
tar -zxvf frp_0.44.0_linux_386.tar.gz

#3、进入frp_0.44.0_linux_386
cd frp_0.44.0_linux_386/

#内网服务器搭建的是frp客户端,需要关注的是frpc和frpc.ini

#frpc.ini配置文件服务器内容:
server_addr = XX:XX:XX:XX #frp服务器地址(外网服务器地址)
server_port = 7000 #frp服务器端口(外网服务器端口)

[ssh]
type = tcp
local_ip = 127.0.0.1 
local_port = 22 #需要代理的内网服务器端口
remote_port = 6022 #代理到外网服务器的端口号

我们需要在内网服务器启动frpc

4、启动frp
./frpc -c frpc.ini

内网服务器也不例外,需要设置后台启动,使用systemctl的方式来控制、设置后台frp启动。

vim /lib/systemd/system/frpc.service

frpc.service的内容

[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/zhouyx/frp_0.44.0_linux_386/frpc -c /zhouyx/frp_0.44.0_linux_386/frpc.ini

[Install]
WantedBy=multi-user.target

#可使用下面的命令控制frpc
#启动frpc
systemctl start frpc
#设置开机自启
systemctl enable frpc
#重启应用
systemctl restart frpc
#停止应用
systemctl stop frpc
#查看应用的日志
systemctl status frpc
#查看端口占用 
netstat -tunlp

启动内网服务器后,可以发现外网服务器的端口占用列表出现了内网服务器映射的端口,这样说明已经搭建好了。

使用外网服务器IP加映射的端口访问内网服务器,成功的实现了内网穿透

五、实现内网服务器多端口映射

这里以映射本地nacos为例,添加端口映射信息

#重启frpc
systemctl restart frpc

此时外网服务器(云服务)多了端口8848

通过内网服务器IP+端口访问nacos

通过外网服务器IP+端口访问nacos

六、注意

在搭建frp的时候要注意端口的开放。如果防火墙打开,而没有开发端口,可能会导致搭建失败。

云服务器需在指定的云服务平台开放端口。

#1、开启防火墙 
systemctl start firewalld
#2、开放指定端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent
#命令含义:
--zone #作用域
--add-port=7000/tcp  #添加端口,格式为:端口/通讯协议
--permanent  #永久生效,没有此参数重启后失效
#3、重启防火墙
firewall-cmd --reload

#4、查看端口号
netstat -ntlp   #查看当前所有tcp端口·
netstat -ntulp |grep 7000   #查看所有7000端口使用情况
赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。