Frp配置内网穿透

frp工作原理:服务端运行,监听一个主端口,等待客户端的连接;客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口;外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

一、服务端配置

  1. 将下载好的frp库用远程连接工具上传到服务器上

  1. 解压frp压缩包:tar -zxvf frp_0.37.1_linux_amd64.tar.gz
  2. 进入解压目录:cd frp_0.37.1_linux_amd64
  3. 打开服务端配置文件:vim frps.ini ( 并配置 )(frp的监听端口,默认是7000)
  4. 创建目录:sudo mkdir /etc/frp
  5. 将frps.ini复制到该目录下:sudo cp frps.ini /etc/frp
  6. 复制相应文件到指定目录:sudo cp frps /usr/bin
  7. 设置服务端配置文件自启动:vim frps.service
  8. [Unit]

    Description=Frp Server Service

    After=network.target

    [Service]

    Type=simple

    User=nobody   #指定了服务运行时使用的用户,即 nobody 用户

    Restart=on-failure  #指定了服务在出现故障时重新启动的策略,即在失败时自动重启

    RestartSec=5s #每次重启之间的间隔时间为 5 秒

    ExecStart=/usr/bin/frps -c /etc/frp/frps.ini  #服务启动时要运行的命令

    LimitNOFILE=1048576 #服务可以打开的最大文件描述符数量,即 1048576

    [Install]

    WantedBy=multi-user.target    #当系统进入多用户模式时,该服务将自动启动

  9. 将该脚本复制到启动脚本那里:sudo cp /home/frp_0.37.1_linux_amd64/frps.service /usr/lib/systemd/system/
  10. 设置开机自启动:sudo systemctl enable frps.service
  11. 启动:sudo systemctl start frps.service
  12. 查看状态(看到如下图示,则启动成功):sudo systemctl status frps.service
  13. 如果配置了防火墙,记得放行相应端口,没配防火墙就不用管

二、客户端配置

(1)将下载好的frp库用远程连接工具上传到内网虚拟机上

(2)解压

(3)进入解压目录:cd frp_0.37.1_linux_amd64

(4)编辑frpc.ini配置文件:vim frpc.ini

该配置文件的含义:将本地的 127.0.0.1:8088(即本地的 127.0.0.1 地址和 8088 端口)映射到远程服务器的 81.69.6.219:7676(即服务器的 81.69.6.219 地址和 7676 端口)。意味着当在本地连接到 127.0.0.1:8088 时,实际上会被转发到服务器的 81.69.6.219:7676

(5)客户端启动:./frpc -c frpc.ini (看到下图所示,则启动成功)

(6)在云服务器上开放7676端口

(7)创建目录:sudo mkdir /etc/frp

(8)将frpc.ini复制到该目录下:sudo cp frpc.ini /etc/frp

(9)复制相应文件到指定目录:sudo cp frpc /usr/bin

(10)进入该目录下:cd /usr/lib/systemd/system/

(11)创建客户端自启动脚本:vim frpc .service

(12)设置开机自启动:sudo systemctl enable frpc.service

(13)启动:sudo systemctl start frpc.service

(14) 查看状态(看到如下图示,则启动成功):sudo systemctl status frpc.service

三、IptablesNAT规则,进行端口转发(云服务器)

(1)iptables 的 NAT 规则,将来自公网 IP 地址为 81.69.6.219、端口为 7676 的 TCP 请求,转发到本地网络中的另一台服务器(IP 地址为 192.168.1.4)的端口 8088:

sudo iptables -t nat -A PREROUTING -p tcp -d 81.69.6.219 --dport 7676 -j DNAT --to-destination 192.168.1.4:8088

(2)检查是否成功设置了转发规则:sudo iptables -t nat -L

(表示已经成功添加了 PREROUTING 链中的 DNAT 规则,将目标 IP 地址为 81.69.6.219、端口为 7676 的 TCP 请求转发到了 192.168.1.4:8088)

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

维柒柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值