注意:
本文所有内容均在ubuntu16.04上进行操作,centos指令可能稍有不同
- 前置工作
首先要明确frp基于ssh代理访问,因此咱们首先得安装上ssh吧
sudo apt-get install openssh-server
ok,现在我们启动ssh,利用systemctl或者service都可以
sudo service ssh start
然后我们将ssh设置为开机自启动
sudo systemctl enable ssh
到这里前置工作就算结束了
现在到我们的重头戏frp了,frp直接搜索下载下.tar.gz压缩包即可,推荐新版本
- frpc
我们在目标代理服务器上进行解压,作为我们的frp server
在服务器中最重要的两个文件: frps与frps.ini
首先我们别忘了frps可执行化
chmod 755 frps
然后就是对frps.ini进行编辑了,这里我们只针对一个ssh访问
[common]
#这个就是我们服务器绑定的端口号,利用这个端口连接监听
bind_port = 7123
#当代理出来的是web服务时,在外网访问http://vps的IP:7124
vhost_https_port = 7124
#dashboard_port状态以及代理统计信息展示,网址:7500可查看详情
dashboard_port = 7999
#dashboard_user访问用户dashboard_pwd访问密码
dashboard_user = user_name
dashboard_pwd = user_passwd
#log_file日志文件log_level记录的日志级别log_max_days日志留存3天authentication_timeout超时时间
log_file = ./frps.log
log_level = info
log_max_days = 3
authentication_timeout = 0
#max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50
ok,现在设置完,我们需要确定防火墙没有屏蔽frpc的端口,否则是无法交互信息的
可以直接把防火墙关闭,或者利用ufw(ubuntu下)/firewall(centos下)进行allow/add来添加访问端口
同样的,我们服务器也可以设置frps为service里面的一个服务,具体就是在/etc/init.d目录下创建一个frps指令脚本,这样讲frps设置为一个单独的服务更加方便
启动frps就是:
所在目录/frps -c 所在目录/frps.ini
打开之后服务器这边就算搞定了
- frpc
接下来我们设置frpc也就是我们的目标访问机器
同样需要机器开启ssh服务
然后我们要设置好frpc.ini内容
[common]
#服务器的ip
server_addr = xxxxx
#frps.ini中配置服务端要一样bind_port
server_port = 7123
[ssh]
#类型tcp
type = tcp
#需要代理出去的本地ip
local_ip = 127.0.0.1
# local_ip = 192.168.0.3
#需要代理出去访问的端口,这里为了防止端口被防火墙阻止直接选择ssh的22port,也可以选择其他的port
local_port = 22
#这里就是转发出去的端口,也就是在自己的机器上访问的代理端口
remote_port = 8585
然后我们同样在目标主机上执行frpc指令
所在目录/frpc -c 所在目录/frpc.ini
访问的时候就直接拿我们的remote_port访问公网IP即可
上面说到,为了方便我们希望每次reboot的时候都能够实现自启动,那么我们可以写一个service脚本添加frps与frpc服务
这里以frpc举例子,我们采用systemctl作为控制启动项,后续可以使用service或者systemctl来对服务进行查看
在/lib/systemd/system目录下创建frpc.service服务文件
[Unit]
Description=frpc service
#After=multi-user.target
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/home/leonard/Documents/frp/frpc -c /home/leonard/Documents/frp/frpc.ini
ExecStop=/bin/kill $MAINPID
ExecReload=/home/leonard/Documents/frp/frpc reload -c /home/leonard/Documents/frp/frpc.ini
[Install]
WantedBy=multi-user.target
注:
- 如果要是出现了end of file,请查看是否访问端口写错了
- 如果出现拒绝访问请检查防火墙是否开启对应端口访问,可以把防火墙关闭
自己也是整了半天,和防火墙斗智斗勇,设置好端口很重要,有时候会出现端口占用情况,这里采用netstat来查看占用端口然后kill -9直接杀死进程再运行即可