当前位置:   article > 正文

frp实现内网穿透(超详细)_frp内网穿透,一名毕业三年的女程序媛面试头条经验

内网穿透

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

  1. Linux环境docker安装redis(简单粗暴,复制即用)
  2. Linux环境Nginx安装部署
  3. docker安装部署Elasticsearch(ES)以及相关配置
  4. Linux环境docker安装Nacos(简单粗暴,复制即用)
  5. Linux环境docker安装Neo4j,以及Neo4j新手入门教学(超详细版本)

ftp介绍

frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 项目官网是:https://github.com/fatedier/frp

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

通俗来说:就是打通互联网和局域网之间的访问

准备工作

  • 一台可以访问互联网的服务器,什么配置的云服务器都行,作为服务端
  • 一台本地部署服务的局域网服务器,什么系统的都行,作为客户端
  • 下载frp,服务端和客户端都得下载,建议同一个版本,不同版本不知道可不可以,但是尽量别给自己找麻烦,实在不行,你也可试试,理论上可以。linux版本:wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

说明:可能有人会好奇,我都有云服务器了,为什么还要内网穿透,直接部署到云服务器不行吗?我只能说:可以,如果你的云服务器能承载你的服务。

frp配置教程

服务器端配置

1、下载frp库
# 下载frp
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0\_linux_amd64.tar.gz 

# 解压
tar -zxvf frp_0.33.0\_linux_amd64.tar.gz

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2、进入该解压目录
# 进入目录
cd frp_0.33.0\_linux_amd64/

# 打开配置文件
vi frps.ini

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

将文件内容修改为如下:

[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = 52010  # 这个token之后在客户端会用到
# http代理访问端口
vhost_http_port = 8080

# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

坑点:

  • 7000和7500这两个端口,如果非必要就不要改了,不要为难自己,这两个端口主要用于服务端连接,以及可视化窗口访问,和后面服务访问链接的端口没关联,所以不要太在意
  • 记得放开服务器80、8080、7000、7500这几个端口的访问权限,包括云服务安全组策略和服务器防火墙
  • token和dashboard_pwd建议改成自己的
  • vhost_http_port 配置的端口和后面访问的端口有关,因此必须保证这个端口不能被占用
  • 当vhost_http_port 设置端口为80或者443,但是启动报错 new proxy [ssh] error: port unavailable ,将/usr/local/frp_0.33.0_linux_amd64/systemd/目录下frps.service中的User=nobody去掉就可以正常启动frps.service了

相关命令

Linux 查看端口占用情况
lsof
语法格式:
lsof -i:端口号
更多命令:
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
语法格式:
netstat -tunlp | grep 端口号
更多命令:
netstat -ntlp   //查看当前所有tcp端口
netstat -ntulp | grep 80   //查看所有80端口使用情况
netstat -ntulp | grep 3306   //查看所有3306端口使用情况

kill
在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:
kill -9 PID

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
3、设置和启动frp服务
sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
4、防火墙开放端口
# 添加监听端口
sudo firewall-cmd --permanent --add-port=7000/tcp
# 添加管理后台端口
sudo firewall-cmd --permanent --add-port=7500/tcp
sudo firewall-cmd --reload

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
5、验证服务端是否启动成功

访问:http://服务器IP:后台管理端口”,输入用户名和密码可以查看连接状态 如:http://yourip:7500,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd 登录之后界面如下:
在这里插入图片描述
如果上述步骤没有问题,则说明frp的服务端配置成功了,也就意味着内网穿透你已经成功了一半!!!

客户端(局域网)配置

1、下载frp
# 下载frp库
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0\_linux_amd64.tar.gz

# 解压frp压缩包
tar -zxvf frp_0.33.0\_linux_amd64.tar.gz

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2、配置frpc.ini文件(注意,不是frps.ini)

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-g6nC1Q1M-1713132717839)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/607628
推荐阅读
相关标签
  

闽ICP备14008679号