内网穿透1:CentOS7下 无公网IP、有公网服务器方案 frp

    技术2022-07-10  144

    frp使用记录

    frp内网穿透配置前言公网服务器配置内网配置内网定时检测是否开启frpc

    frp内网穿透配置

    前言

    1、想要在外面访问家里/局域网中的服务,直接用teamview是个好的选择,但是如果想要随时进行访问,那还是内网穿透比较方便点

    2、需要一个具有公网ip的服务器,例如阿里云租用的服务器 github上frp开源网址 请先下载解压到客户端、服务端 3、参考文档

    frp中文文档centos7设置快捷启动、开机自启shell脚本(菜鸟教程)CentOS7设置定时任务方法

    公网服务器配置

    将frps.ini修改为 使用 ./frps -c frps.ini启动服务端,(7000端口要开放)

    配置 vim /lib/systemd/system/frps.service

    [Unit] Description=fraps service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/root/frp/frps -c /root/frp/frps.ini [Install] WantedBy=multi-user.target

    启动frp服务 systemctl start frps 设置自动启动 systemctl enable frps 停止开机自启动 systemctl disable frps

    内网配置

    1、 frpc.ini文件编辑

    ## xxx.xxx.xxx.xxx 为公网ip ## 7000为服务器上接收端口 ## token可以防止被其他人连接 ## 6000端口是 通过公网端口6000可以访问内网22 server_addr = xxx.xxx.xxx.xxx server_port = 7000 token=123456 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000

    2、启动客户端 ./frpc -c ./frpc.ini 注意服务器6000端口要开启 3、配置开机启动 vim /lib/systemd/system/frpc.service

    [Unit] Description=frapc service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/root/frp/frpc -c /root/frp/frpc.ini [Install] WantedBy=multi-user.target

    启动frp服务 systemctl start frpc 设置自动启动 systemctl enable frpc

    也可以添加tcp端口 local_port 本地端口 remote_port 公网服务器端口 [web1] type = tcp local_ip = 127.0.0.1 local_port = 80 remote_port = 80 [web2] type = tcp local_ip = 127.0.0.1 local_port = 1234 remote_port = 1234

    内网定时检测是否开启frpc

    1、编写脚本判断进程是否存在frpc vim frpdog.sh

    #!/bin/sh RUNNING=`pgrep frps` curtime=`date "+%F %H:%M:%S"` if [ -n "$RUNNING" ]; then echo $curtime + "frpc is running" >> /root/frp/frpdog.log else echo $curtime "starting frpc" >> /root/frp/frpdog.log systemctl start frpc fi # 判断进程是否存在 frpc ,并将time+状态保存到log,不存在即开启

    2、:wq保存退出,frpdog.sh给予权限

    chmod +x ./frpdog.sh #使脚本具有执行权限 ./frpdog.sh #执行脚本

    查看log输出 3、设置每5分钟执行一下脚本

    centos7自带crontabs,先设置启动systemctl enable crond # 开机启动 systemctl start crond # 启动 5分钟执行一下 frpdog.sh脚本 vi /etc/crontab*/5 * * * * /root/frp/frpdog.sh 保存生效#加载任务,使之生效 crontab /etc/crontab #查看任务 crontab -l

    4、问题:脚本文件是查询frpc进程,脚本命名不能包含frpc,脚本路径也不能包含frpc,不然在设置定时任务时,会多两个(或者多个)进程包含frpc导致判断有误,即使没开frpc,也可以查询到两个进程

    Processed: 0.014, SQL: 9