300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 阿里云centos7 frp内网穿透

阿里云centos7 frp内网穿透

时间:2023-05-28 08:44:22

相关推荐

阿里云centos7 frp内网穿透

frp介绍

frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 项目官网是 /fatedier/frp,

frp工作原理

服务端运行,监听一个主端口,等待客户端的连接;

客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;

服务端fork新的进程监听客户端指定的端口;

外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;

客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

简单来说就是一台没有公网ip的服务器,利用有公网ip的服务器的ip。让这两台设备连接。然后把这两台看成是一台就行了。然后这个frp就相当于把它俩连接起来的工具。

可以先了解一下其他的知识,比如正向代理与反向代理。这篇文章其实讲的挺好的。vpn就使用了正向代理,frp中使用了反向代理

2 配置教程

想要配置frp穿透,首先必须先要有一台有公网ip的服务器,主要得有公网ip(即:可以外网访问)的服务器。如果没有,接下来的教程就不用看了。配置教程主要分为两个部分,一是服务器端(外网服务器)的配置;二是客户端(内网服务器)配置。

1、下载frp

/fatedier/frp/releases

frp_0.38.0_linux_amd64.tar.gz是64位系统,frp_0.38.0_linux_386.tar.gz是32位系统,根据自已的云服务器去下载对应的frp文件。

2.解压压缩文件:

tar -zxvf frp_0.38.0_linux_amd64.tar.gz

mvfrp_0.38.0_linux_amd64 frp

mv frp /usr/local/

cd/usr/local/frp

frpc, frpc.ini , 因为包含c结尾代表client,是客户端所使用的,所以服务器端用不到可以删除掉,也可以不删除,没有影响。

然后配置frps.ini文件。

使用vim frps.ini修改文件

如下所示

[common]

# frp监听的端口,默认是7000,可以改成其他的

bind_port =7000

# 授权码,请改成更复杂的

#token = xd123456abc # 这个token之后在客户端会用到

# frp管理后台端口,请按自己需求更改

dashboard_port = 7500

# frp管理后台用户名和密码,请改成自己的

dashboard_user = xdadmin

dashboard_pwd = xdadmin

#vhost_http_port = 6001 #访问6001端口,映射到内网web服务

#vhost_https_port = 10443

#enable_prometheus = true

# frp日志配置

log_file = /usr/local/frp/log/frps.log

log_level = info

log_max_days = 3

dashboard_port是服务端仪表板的端口。开启后可使用ip+dashboard_port访问。

token是另外一个没有公网ip的电脑连接的密码。

dashboard_user和dashboard_pwd表示打开仪表板页面登录的用户名和密码.

bind_port表示用于客户端和服务端连接的端口.也就是没有ip电脑所要连接的端口.它俩绑在一起的绳子.

使用守护程序systemctl

/lib/systemd/system文件夹下创建frps.service

vim frps.service

输入如下内容,保存退出。

[Unit]

Description=frp service

After=network.target

[Service]

TimeoutStartSec=30

ExecStart=#frp绝对路径#/frps -c #frp绝对路径#/frps.ini

ExecStop=/bin/kill $MAINPID

[Install]

WantedBy=multi-user.target

启动服务

systemctl start frps

服务开机自启动

systemctl enable frps

服务器上最终的配置

[Unit]

Description=frp service

After=network.target

[Service]

TimeoutStartSec=30

ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini

ExecStop=/bin/kill $MAINPID

[Install]

WantedBy=multi-user.target

验证服务端是否启动成功

访问:http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态

如:http://62.244.114.4:7500/,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd

登录之后界面如下:

如果上述步骤没有问题,则说明frp的服务端配置成功了,也就意味着内网穿透你已经成功了一半!!!

但是要提前到你买的官网打开这个可以访问的端口(我的是阿里云的服务器)(如何开放端口百度查询即可)如图:我的已经添加7000端口和3389端口

阿里云开放端口,在云服务器--->ECS安全组--->配置规则

还需要iptables或者fillwalld放开相关的端口

iptables

vim /etc/sysconfig/iptables

#自定义frp内网穿透端口

-A INPUT -p tcp -m state --state NEW -m tcp --dport 7000 -j ACCEPT

#frp管理后台端口

-A INPUT -p tcp -m state --state NEW -m tcp --dport 7500 -j ACCEPT

重启 iptables 防火墙服务

# systemctl restart iptables.service

fillwalld

那怎么开启一个端口呢

添加

firewall-cmd--zone=public--add-port=80/tcp--permanent (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd--reload

查看

firewall-cmd--zone=public--query-port=80/tcp

删除

firewall-cmd--zone=public--remove-port=80/tcp--permanent

测试地址:http://182.92.232.14:7500/static/#/

客户端相关配置(也就是另外一台内网的服务器)

解压压缩文件:

tar -zxvf frp_0.38.0_linux_amd64.tar.gz

mvfrp_0.38.0_linux_amd64 frp

mv frp /usr/local/

cd/usr/local/frp

因为是客户端所以编辑包含c的文件

然后配置frpc.ini文件。

使用vim frpc.ini修改文件

如下所示

[common]

server_addr = 公网ip

server_port = 7000

[ssh]

type = tcp

local_ip = 192.168.1.88

local_port = 22

remote_port = 6000

[web1]

type = tcp

local_ip=192.168.1.88 #这个地方是没有公网ip的服务器地址

local_port = 80 #这个地方是没有公网ip的服务器部署的服务的端口

remote_port=8080 #绑定的远程有公网ip的服务器的端口

# frp日志配置

log_file = /usr/local/frp/log/frpc.log

log_level = info

log_max_days = 3

客户端配置

[common]

server_addr = 公网ip

server_port = 7000

[ssh]

type = tcp

local_ip=192.168.1.88

local_port = 22

remote_port=6000

查看frpc.ini配置文件(C代表客户端),在命令窗口直接输入frpc.ini即可打开。server_addr = 114.119.110.120是你买的服务器的公网IP要对应上。

server_port= 7000是监听端口与服务器的bind_port对应一致。local_port = 22,remote_port = 6000是在买服务器的官网开通的可访问端口。

最终配置

[common]

server_addr =182.92.232.14

server_port =7000

[ssh]

type = tcp

local_ip = 192.168.1.88

local_port = 22

remote_port = 6000

[web]

type = tcp

local_ip = 192.168.1.88

#访问本地80web服务

local_port = 80

#必须已经备案

custom_domains =

# frp日志配置

log_file = /usr/local/frp/log/frpc.log

log_level = info

log_max_days = 3

注意:代理端口好像限制最大8888(remote_port)

使用守护程序systemctl

/lib/systemd/system文件夹下创建frpc.service

vim frpc.service

输入如下内容,保存退出。

[Unit]

Description=frp service

After=network.target

[Service]

TimeoutStartSec=30

ExecStart=/usr/local/frp/frpc-c/usr/local/frp/frpc.ini

ExecStop=/bin/kill $MAINPID

[Install]

WantedBy=multi-user.target

启动服务

systemctl start frpc

服务开机自启动

systemctl enable frpc

最终实验的最终版本

服务端部分

vim frps.ini

[common]

# frp监听的端口,默认是7000,可以改成其他的

bind_port = 7000

authentication_method = token

# 授权码,请改成更复杂的

token = xd123456abc

# 这个token之后在客户端会用到

# frp管理后台端口,请按自己需求更改

dashboard_port = 7500

# frp管理后台用户名和密码,请改成自己的

dashboard_user = xdadmin

dashboard_pwd = xdadmin

# 访问10080端口,映射到内网web服务

#vhost_http_port = 10080

#vhost_https_port = 10443

#enable_prometheus = true

# frp日志配置

log_file = /usr/local/frp/log/frps.log

log_level = info

log_max_days = 3

客户端部分

vim frpc.ini

[common]

server_addr = 182.92.232.14

server_port = 7000

authentication_method = token

token = xd123456abc

[ssh]

type = tcp

local_ip = 192.168.1.88

local_port = 22

remote_port = 6000

[web]

type = tcp

local_ip = 192.168.1.88

local_port = 80

#访问本地80web服务

remote_port = 8080

custom_domains =

#必须已经备案

# frp日志配置

log_file = /usr/local/frp/log/frpc.log

log_level = info

log_max_days = 3

注意需要阿里云和防火墙开放需要的哪些端口,不然还是没有办法访问的

访问web服务的时候

type=tcp

如果是type=http的话,访问不了

测试访问

现在访问服务器IP:访问内部的ssh端口 就可以访问内网的设备

比如我现在要访问我内网的设备就访问:182.92.232.14:6000

连接成功

frp如何加token?

在 frps.ini 和 frpc.ini中均添加

authentication_method = token

token = changeit

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。