• 用frp搞个内网穿透


    使用场景:

            在公司用电脑敲代码,环境都是localhost,有时候你要接第三方接口比如支付、或者企业微信的事件回调等,都需要一个公网地址,因为这时候是开发阶段,你即想要公司电脑上运行的环境又想要回调能找到你的公司电脑。

            首先,在公司的所有电脑连wifi或者有线,都是共用一个公网ip对外访问,所以公司肯定不会给你一个单独的公网ip放你电脑上啦。

    用frp搞个内网穿透,步骤提要:

            1 自己的云服务器(公网ip),

            买服务器就不教了,有钱啥配置都能买,没钱就买最低配置,仅做学习用。

    如何远程连接云服务器_坐等夕阳落time的博客-CSDN博客_如何访问云服务器

            2 下载frp

            3 自己的云服务器配置frp服务端

            4 自己公司电脑配置frp客户端

    1 下载frp

    ps: 要把自己电脑上的杀毒软件,xx管家关了,否则下载不了的哦。

    frp是一个开源项目,所以,你们别被收费了。

    https://github.com/fatedier/frp

     frp下载地址

    Releases · fatedier/frp · GitHub

      下载完了解压

     2 介绍文件

    介绍一下解压包里的各个文件

     文件名带full,没有被使用,可以说它是一个配置参考文档,里面含着所有配置,你需要的时候可以去里面找,里面用英文介绍了每条配置的意思,但是英语不好的缺配置的时候,还是上网搜索吧。

    3 开始使用

     文档 | frp

    能力强的小伙伴可以自己看着官方文档弄,这个能力是一定要自己掌握的,所以我的文章都会放上官方的文档链接。

     1  自己的云服务器配置 frp服务端

    主要是有公网ip的配置frp服务端,这样才能做到内网穿透,访问公网ip相当于访问到你的内网机子。

    1.1 服务端配置编写 ---  frps.ini 文件

    我用的: 

    1. [common]
    2. # frp服务端监听的端口,默认是7000
    3. bind_port = 7000
    4. # 身份验证令牌,在客户端使用
    5. token = 52010
    6. # frp管理后台端口,可修改
    7. dashboard_port = 7500
    8. # frp管理后台用户名和密码,可修改
    9. dashboard_user = admin
    10. dashboard_pwd = admin
    11. # 开启监控
    12. enable_prometheus = true
    13. # frp日志配置
    14. log_file = /var/log/frps.log
    15. log_level = info
    16. log_max_days = 3

    编写完配置,我们就把这个linux的frp文件夹上传到云服务器

    1.2 在云服务器启动frp的服务端服务 ---- frps

    1.2.1 关闭frps服务

    因为我的服务器上已经启动过frps服务了,所以我先把它关一下

    1. # linux 上查看运行的服务列表
    2. netstat -lntp

    1. # linux 上关闭frps
    2. sudo systemctl stop frps

    1.2.2 启动frps服务

    我以前下的版本里会有frps.service文件,现在这个0.45.0版本没有了

    但是官方文档有教程

    使用 systemd | frp

    主要是ExecStart,填写frps的安装路径

    因为为了做好备份,所以,不建议直接填写安装包文件夹的路径(就是你上传到服务器的那个文件夹frp_0.45.0_linux_amd64),主要还是规范,当然你可以随意。

    所以参照frp以前旧版本中的frps.service,我们把frps文件复制放到 /usr/bin,把frps.ini复制放在 /etc/frp(这些文件操作我都是用WinSCP搞的,熟linux命令的可以直接命令弄哈)

     

     

    最后一步:把你写好的 frps.service 文件复制到 /etc/systemd/system 或 /usr/lib/systemd/system/

    1. [Unit]
    2. Description=Frp Server Service
    3. After=network.target
    4. [Service]
    5. Type=simple
    6. User=nobody
    7. Restart=on-failure
    8. RestartSec=5s
    9. ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
    10. [Install]
    11. WantedBy=multi-user.target

    使用 systemd 命令,管理 frps,一般执行linux命令,都会加个sudo 超管身份执行

    1. # 启动frp
    2. systemctl start frps
    3. # 停止frp
    4. systemctl stop frps
    5. # 重启frp
    6. systemctl restart frps
    7. # 查看frp状态
    8. systemctl status frps
    9. # 配置 frps 开机自启
    10. systemctl enable frps
    1. # 启动frp
    2. sudo systemctl start frps

     1.2.3 查看frps服务成功没有

    1. # 查看frp状态
    2. systemctl status frps

    不使用 systemd  ,单独运行 /usr/bin/frps -c /etc/frp/frps.ini 看看

    /usr/bin/frps -c /etc/frp/frps.ini

     Permission denied 是因为ftps文件没有执行权限,给加上执行权限

    一定要注意你执行命令时候的目录,因为路径错了,命令就执行失败,ftps文件放在了 /usr/bin ,执行 chmod 777 frps,加上权限

    chmod 777 frps

     1.2.4 再去访问一下frps的管理后台

    如果你运行启动命令时,没报错误,你就访问之前服务端配置文件 frps.ini 里设置的后台

    ps: 云服务器记得防火墙开一下端口,不然访问不到

     

    ip+端口( frps.init 里配的7500) 

     2 自己公司电脑配置 frp客户端 (内网)

    公网frp服务端启动好了,开始内网frp客户端的配置,我用的是公司电脑,所以是windows系统的步骤和配置frp服务端一样。

    ps: 要把自己电脑上的杀毒软件,xx管家关了。

    1.1 客户端配置编写 ---  frpc.ini 文件

    我用的: 

    1. [common]
    2. server_addr = 云服务器ip(公网ip)
    3. server_port = 7000
    4. # frps.init 上配置的身份令牌
    5. token = 52010
    6. # 配置ssh服务
    7. # [ssh]
    8. # type = tcp
    9. # local_ip = 127.0.0.1
    10. # local_port = 22
    11. # 自定义
    12. # remote_port = 20202
    13. # 配置http服务,可用于小程序开发、远程调试等
    14. # [web]
    15. # type = http
    16. # local_ip = 127.0.0.1
    17. # local_port = 8080
    18. # web域名
    19. # subdomain = xxx.xxx.cn
    20. # 自定义
    21. # remote_port = 8080
    22. # 上面的两个服务我都用不到,写在那里万一以后用到了
    23. # 我主要用的下面这个服务[自定义命名],[ssh]这样的名称必须全局唯一,可以[ssh1]
    24. [company_pc]
    25. type = tcp
    26. local_ip = 127.0.0.1
    27. # 我本机跑的后端服务端口(springboot)
    28. local_port = 9500
    29. # 自定义,之后就是云服务器ip加这个remote_port,就能访问到你本机
    30. remote_port = 13389

    ps: 云服务器记得防火墙开一下remote_port填写的端口,不然访问不到

    1.2 在自己公司电脑启动frp的客户端服务 ---- frpc

    1.2.1 关闭frpc服务

    我电脑之前跑过服务,先关了。 ctrl+alt+delete 选择任务管理器,然后 ctrl+f 输入frp 就找到了frpc服务, 鼠标右键结束任务就行。

    1.2.2 启动frpc服务

    打开下载的frp文件夹,在路径栏,输入cmd,回车:

     命令行窗口运行:

    cmd /c frpc.exe -c frpc.ini

    想后台运行frpc服务:

    创建一个frpc.vbs文件

    1. Set ws = CreateObject("Wscript.Shell")
    2. ws.run "cmd /c frpc.exe -c frpc.ini",vbhide

    鼠标双击运行即可。

    3 开始试试,用公网ip能不能调用内网的服务

    启一个9500服务:

    apifox 调接口: 

     成功访问到了!之后用来在内网环境开发时,第三方的接口回调地址,比如支付、企业微信事件回调等

     参考

    使用frp配置内网访问(穿透)教程(超详细,简单)_*Lisen的博客-CSDN博客_frp内网穿透

    使用 systemd | frp

    【Linux】使用 systemd 管理 frp 服务_chensuanfa的博客-CSDN博客_frp systemd

    【frp内网穿透工具】服务端frps和客户端frpc在Linux和Windows下开机启动并隐藏启动的方法 – 星星芦苇

    Frp穿透技术_冰羽呐的博客-CSDN博客

  • 相关阅读:
    网卡限速工具之WonderShaper
    如何快速提升教育直播间人气
    洛谷P1763 埃及分数
    Weblogic管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)
    信奥中的数学:进位制
    网络编程及练习
    Linux 中的 chage 命令及示例
    存储器、I/O组织、微处理器
    git 操作备注
    【STM32】IAP升级01 bootloader实现以及APP配置(主要)
  • 原文地址:https://blog.csdn.net/weixin_43991241/article/details/127526593