【Linux】腾讯云服务器,使用FRP内网穿透,端口映射,远程访问内网主机、代理内网

一、需求分析

1.1 情况

有一台具有公网ip的腾讯云服务器–Linux CentOs7.6版本
有一台实验室局域网内的服务器(ununtu 1604版本),局域网IP为192.168.0.202,这台服务器能访问外网,但外网无法穿透找到该机器

1.2 需求

我家里有一台电脑(即不在实验室局域网内),想访问局域网内的机器

1.3 解决方案

搭建FPR服务,通过腾讯云服务器间接访问局域网内的机器

二、云服务器开放端口访问

这里我们先开放7000端口(frp服务端口)和6000端口(映射局域网机器的22端口)

2.1 进入控制台

进入控制台,点击购买的服务器->管理
在这里插入图片描述

2.2 配置防火墙

如果想从外网访问服务器的某个端口,我们需要为这个端口设置添加规则

  1. 点击防火墙按钮,添加规则
    在这里插入图片描述
  2. 开放6000端口和7000端口,例如6000端口如下
    在这里插入图片描述

三、安装FPR

3.1 限定

首先在这里,我们称

  1. 腾讯云服务器运行的为服务端
  2. 局域网内机子运行的为客户端
    第三大节为简易配置,简易配置成功后如需要可看第六大节复杂配置

3.2 云服务器(服务端)安装FPR

PS: 在之前我使用的也是frp,但frp存在一个问题,那就是无法设置IP黑名单或白名单,这就使得公网上任意主机都能访问到映射的主机,查看记录可以看到经常有成百上千的尝试连接,有点危险,并且如果使用frp提供的socks代理将会更危险,将会暴露整个内网所有机子,当一些主机设置弱口令密码时将会很容易攻破,因此博主用java重新写了一个内网穿透工具,可点击博客介绍GitHub仓库查看,这个工具拥有frp常用的映射、代理功能,并且还有一个防火墙管理网站,可以设置一些ip白名单,每次换了地点只需要登陆下网站添加到IP白名单即可,十分方便,使用了的话还麻烦给个star哦

当然你也可继续安装frp

  1. 点击链接,下载最新版的frp包
    我下载的是
    在这里插入图片描述
  2. 将下载的文件上传至服务器
  3. 执行tar -zxvf frp_0.38.0_linux_amd64.tar.gz解压
  4. 执行 cd frp_0.38.0_linux_amd64/进入文件夹
  5. 启动运行
    在安装好的目录内
    执行./frps -c ./frps.ini前台启动命令
    在这里插入图片描述
    后期可以ctrl+c 终止程序,再执行nohup ./frps -c ./frps.ini & 后台保持启动

3.3 局域网内机器(客户端)安装FPR

  1. 安装方法与云服务器一致
  2. 将下载的文件上传至服务器
  3. 执行tar -zxvf frp_0.38.0_linux_amd64.tar.gz解压
  4. 执行 cd frp_0.38.0_linux_amd64/进入文件夹
  5. 执行vi frpc.ini更改相关配置如下
    在这里插入图片描述
  6. 启动运行
    #在安装好的目录内
    执行./frpc -c ./frpc.ini前台启动命令
    在这里插入图片描述
    后期可以ctrl+c 终止程序,再执行nohup ./frpc -c ./frpc.ini & 后台保持启动

四、访问

现在就可以通过云服务器公网IP+6000端口访问局域网内机器的22号ssh端口
在这里插入图片描述

五、设置frps和frpc服务开机自启动

切勿直接复制粘贴,注意是frps还是frpc

5.1 设置云服务器端开机自启动

  1. 执行sudo vim /etc/systemd/system/frps.service创建服务,编辑如下
[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frp_0.38.0_linux_amd64/frps -c /root/frp_0.38.0_linux_amd64/frps.ini		# 编辑的时候一定要删除注释 这里更改为自己安装frps的绝对路径
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
  1. 开启自启动
    执行如下指令
#启动frps
systemctl daemon-reload
systemctl start frps
#设置为开机启动
systemctl enable frps

5.2 设置局域网机子frpc开机自启动

  1. 执行sudo vim /etc/systemd/system/frpc.service创建服务,编辑如下
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/home/intleo21/frp_0.38.0_linux_amd64/frpc -c /home/intleo21/frp_0.38.0_linux_amd64/frpc.ini		# 编辑的时候一定要删除注释 这里更改为自己安装frpc的绝对路径
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
  1. 开启自启动
    执行如下指令
#启动frpc
sudo systemctl daemon-reload
sudo systemctl start frpc
#设置为开机启动
sudo systemctl enable frpc

六、复杂配置

以下配置中密码和公网IP都使用XX进行了代替,复制使用时请注意修改

  1. 远程服务端frps.ini

    [common]
    # frp监听的端口,默认是7000
    bind_port = 7000
    # 授权码,请自定义更改
    token = XXXXX
    # 这个token之后在客户端会用到
    
    # frp管理后台端口,请按自己需求更改
    dashboard_port = 7500
    # frp管理后台用户名和密码,请改成自己的
    dashboard_user = admin
    dashboard_pwd = XXXXX
    enable_prometheus = true
    
    # frp日志存放位置、日志等级及日志存储最大天数
    log_file = /var/log/frps.log
    log_level = info
    log_max_days = 7
    
    
  2. 客户端的frpc.ini文件

    [common]
    # 远程服务器ip,远程frp服务端口以及远程登录密码
    server_addr = 119.XX.XX.119
    server_port = 7000
    token = XXXXX
    
    # 日志存放位置、日志等级及日志存储最大天数
    log_file = /var/log/frpc.log
    log_level = info
    log_max_days = 7
    
    # 将本地机的22端口映射至远程20022端口 中括号内[ssh]只作为标识,可自定义
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 20022
    
    # 将本机的5901端口映射至远程25901端口
    [vnc]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 5901
    remote_port = 25901
    
    # 将本机所在局域网内的192.168.0.129机子的5901端口映射至远程55901端口
    [tsj-vnc]
    type = tcp
    local_ip = 192.168.0.129
    local_port = 5901
    remote_port = 55901
    # 代理本机所在的内网,即若用户设置代理为公网IP+端口即可访问本机所在内网,使用的是socks5代理协议,plugin_user及后面的可设置可不设,但不设的风险较大
    [socks5_proxy]                                                                                                                                                                   
    type = tcp                                                                                                                                                                       
    remote_port = 7890                                                                                                                                                               
    plugin = socks5
    plugin = socks5
    plugin_user = name
    plugin_passwd = password
    use_encryption = true
    use_compression = true
    
    
  3. 重启frp服务
    服务端
    sudo systemctl restart frps.service
    客户端
    sudo systemctl restart frpc.service

  • 8
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
FRP是一款开源的内网穿透工具,可以将内网的服务映射到公网上,方便远程访问。下面是Linux使用FRP进行内网穿透的教程。 1. 下载FRP 在官网(https://github.com/fatedier/frp/releases)下载对应系统的FRP客户端和服务端文件。 2. 配置服务端 将下载的服务端文件解压,进入解压后的目录,编辑frps.ini配置文件,配置端口、token等信息。 ```ini [common] bind_port = 7000 token = your_token ``` 其中,bind_port是服务端监听的端口,token是访问服务端需要提供的令牌。 保存配置文件后,运行以下命令启动服务端。 ``` ./frps -c frps.ini ``` 3. 配置客户端 将下载的客户端文件解压,进入解压后的目录,编辑frpc.ini配置文件,配置服务端地址、端口、令牌等信息。 ```ini [common] server_addr = your_server_ip server_port = 7000 token = your_token [web] type = http local_port = 80 custom_domains = your_domain ``` 其中,server_addr是服务端的IP地址,server_port是服务端监听的端口,token是访问服务端需要提供的令牌。 在客户端配置文件中,还可以指定需要映射的本地服务类型、端口号以及自定义域名等信息。例如上面的配置表示将本地的80端口映射到your_domain域名上。 保存配置文件后,运行以下命令启动客户端。 ``` ./frpc -c frpc.ini ``` 4. 测试连接 启动服务端和客户端后,可以通过访问your_domain域名来测试是否能够成功连接到本地的服务。如果能够正常访问,则说明内网穿透已经成功实现。 以上就是Linux使用FRP进行内网穿透的教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值