前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux部署frp教程

linux部署frp教程

作者头像
cnlixs
发布2022-11-01 15:19:24
1.1K0
发布2022-11-01 15:19:24
举报
文章被收录于专栏:群晖NAS的技术分享

通过 getconf LONG_BIT Linux查看系统位数命令:返回的结果如果是64,说明linux系统属于64位;返回32,系统属于32位。

代码语言:javascript
复制
getconf LONG_BIT

由此我们可以看出我们的公网服务端系统属于LINUX的64位操作系统,接下来进行第二步到FRP项目软件包处下载相对于的安装包即可。

安装frps文件

进入安装目录(本文以/usr/local/为例)

代码语言:javascript
复制
cd /usr/local

官方下载frp最新版Releases · fatedier/frp · GitHub

代码语言:javascript
复制
wget https://github.com/fatedier/frp/releases/download/v0.28.2/frp_0.28.2_linux_amd64.tar.gz

解压文件

代码语言:javascript
复制
tar -xzvf frp_0.28.2_linux_amd64.tar.gz

创建frps文件夹

代码语言:javascript
复制
mkdir frps

拷贝下载的服务器端文件到frps文件夹

代码语言:javascript
复制
cd frp_0.28.2_linux_amd64 cp frps frps_full.ini frps.ini ../frps

删除无用文件和文件夹

代码语言:javascript
复制
cd /usr/local rm -rf frp_0.28.2_linux_amd64 frp_0.28.2_linux_amd64.tar.gz

然后试着运行一下frps,看看是否能正常运行

代码语言:javascript
复制
root@SteelblueVirtuous-VM:/usr/local/frps# ./frps --help
frps is the server of frp (https://github.com/fatedier/frp)

Usage:
  frps [flags]

Flags:
      --allow_ports string         allow ports
      --bind_addr string           bind address (default "0.0.0.0")
  -p, --bind_port int              bind port (default 7000)
      --bind_udp_port int          bind udp port
  -c, --config string              config file of frps
      --dashboard_addr string      dasboard address (default "0.0.0.0")
      --dashboard_port int         dashboard port
      --dashboard_pwd string       dashboard password (default "admin")
      --dashboard_user string      dashboard user (default "admin")
  -h, --help                       help for frps
      --kcp_bind_port int          kcp bind udp port
      --log_file string            log file (default "console")
      --log_level string           log level (default "info")
      --log_max_days int           log max days (default 3)
      --max_ports_per_client int   max ports per client
      --proxy_bind_addr string     proxy bind address (default "0.0.0.0")
      --subdomain_host string      subdomain host
  -t, --token string               auth token
  -v, --version                    version of frpc
      --vhost_http_port int        vhost http port
      --vhost_http_timeout int     vhost http response header timeout (default 60)
      --vhost_https_port int       vhost https port

如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了

配置frps

编辑frps.ini文件

代码语言:javascript
复制
cd frps vi frps.ini

修改参照

参考以下配置说明来书写配置文件frps.ini,你可以先在电脑上打一份草稿 此处只解释说明一些必要和常用的配置,如需研究完整配置说明请看目录下的frps_full.ini,以及参考frp中文说明

代码语言:javascript
复制
# 下面这句开头必须要有,表示配置的开始
[common]

# frp 服务端端口(必须)
bind_port = 7000

# frp 服务端密码(必须)
token = 12345678

# 认证超时时间,由于时间戳会被用于加密认证,防止报文劫持后被他人利用
# 因此服务端与客户端所在机器的时间差不能超过这个时间(秒)
# 默认为900秒,即15分钟,如果设置成0就不会对报文时间戳进行超时验证
authentication_timeout = 900

# 仪表盘端口,只有设置了才能使用仪表盘(即后台)
dashboard_port = 7500

# 仪表盘访问的用户名密码,如果不设置,则默认都是 admin
dashboard_user = admin
dashboard_pwd = admin

# 如果你想要用 frp 穿透访问内网中的网站(例如路由器设置页面)
# 则必须要设置以下两个监听端口,不设置则不会开启这项功能
vhost_http_port = 10080
vhost_https_port = 10443

#日志路径
#日志记录级别
#日志保留天数
log_file = /usr/local/frps/frps.log
log_level = debug
log_max_days = 7

# 此设置需要配合客户端设置,仅在穿透到内网中的 http 或 https 时有用(可选)
# 假设此项设置为 example.com,客户端配置 http 时将 subdomain 设置为 test,
# 则你将 test.example.com 解析到服务端后,可以使用此域名来访问客户端对应的 http
subdomain_host = example.com

然后把你的准备好的配置文件内容写入frps.ini

更多配置参考: GitHub官方README.md说明 GitHub官方frps.ini说明

注意:阿里云腾讯云服务器需在安全组添加7000,6443端口开放,如果使用到了各种j集成环境面板,例如宝塔面板也需要添加端口放行。

启动frps

启动frps命令

cd /usr/local/frps #先进入安装目录,再执行下面的启动Frp命令 ./frps -c ./frps.ini

保持后台运行frps命令

代码语言:javascript
复制
nohup ./frps -c ./frps.ini &

配置systemctl来控制frps

创建frps.service

代码语言:javascript
复制
sudo vim /lib/systemd/system/frps.service
代码语言:javascript
复制
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

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

[Install]
WantedBy=multi-user.target

注意"ExecStart="之后的路径要填写你的frps安装路径(本文以安装到/usr/local/为例)

ESC退出编辑 输入:wq回车即可保存

使用systemctl命令来控制frps

启动frps

代码语言:javascript
复制
sudo systemctl start frps

服务器开机自动启动frps

代码语言:javascript
复制
sudo systemctl enable frps

重启frps

代码语言:javascript
复制
sudo systemctl restart frps

停止frps

代码语言:javascript
复制
sudo systemctl stop frps

查看日志

代码语言:javascript
复制
sudo systemctl status frps

检查服务器端安装情况

浏览器输入服务器IP访问http://xxx.xxx.xxx.xxx:7500来查看frps服务状态。

您可以在使用ExecStartPre的ExecStart之前运行sleep命令来延迟服务的启动时间:

代码语言:javascript
复制
[Service]
ExecStartPre=/bin/sleep 30
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月11日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装frps文件
    • 进入安装目录(本文以/usr/local/为例)
      • 官方下载frp最新版Releases · fatedier/frp · GitHub
        • 解压文件
          • 创建frps文件夹
            • 拷贝下载的服务器端文件到frps文件夹
              • 删除无用文件和文件夹
                • 然后试着运行一下frps,看看是否能正常运行
                • 配置frps
                  • 编辑frps.ini文件
                  • 启动frps
                    • 启动frps命令
                      • 保持后台运行frps命令
                      • 配置systemctl来控制frps
                        • 创建frps.service
                        • 使用systemctl命令来控制frps
                          • 启动frps
                            • 服务器开机自动启动frps
                              • 重启frps
                                • 停止frps
                                  • 查看日志
                                  • 检查服务器端安装情况
                                  相关产品与服务
                                  云服务器
                                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档