老旧笔记本电脑变服务器(笔记本电脑+内网穿透)
一、前提要求
- 一台老旧的笔记本
- 一个公网ip服务器
- 一个u盘
- 一个肯思考的大脑
二、给笔记本安装CentOS7系统
1. 制作启动盘
1.1 准备工作
- 准备一个至少4G的空U盘(建议8G)
- 下载系统镜像文件
- 下载UltralSO
1.2 下载系统镜像文件
直接点击前文中的链接即可下载,如果想安装桌面版或更全的可以下载DVD或者Everything,但是内存将会极大,笔者将在文末附上本文中出现的所有资源文件。
1.3 下载ULtralSO
这是一个专业版收费的软件,但是我们需要的功能只需要试用即可。
在他的官方下载链接进行下载
接下来进行安装,无脑下一步。
完成后直接继续试用
1.4 完成安装后进行硬盘写入映像
在下方本地目录找到你刚刚系统镜像的位置,双击系统iso
上方 启动->写入硬盘映像
依次选择格式化和写入,注意格式化后u盘原本的资料将全部丢失
特别注意:更改U盘的名字,否则后续会很麻烦!!!!!!
此处我更改为大写的CENTOS
2. 使用U盘驱动开机
插入刚刚制作的U盘,开机的时候疯狂按笔记本对应的快捷键进入选择启动界面
这里笔者的电脑是ThinkPad也就是联想笔记本,快捷键是F12
进入以下界面
进入后选择那个带有USB的,也就是使用U盘接口进行系统启动
3. 笔记本(物理机)安装Centos7
3.1 直接进入选择install会报错
3.2 重新来,进入时按照提示按e或者table编辑
此处注意将这一长串改为你刚刚设置的U盘的名字,或者你没设置名字,那么可以试试改成
CentOS\x207\x20x\8
,如果还不行就用下面的办法。
3.3 查看启动盘符
linuxefi /images/pxeboot/vmlinuz linux dd quiet
此时两种改法,记住
CentOS\x207\x20x\8
或者/dev/sdb4
3.4 ctrl+x进入系统
更改完成功能后按ctrl+x可以进入安装程序
3.5 选择语言(有中文)
3.6 选择安装信息
3.7 选择笔记本的固态硬盘
3.8 数据清空
3.9 连接网络并配置主机名
3.10 设定root密码
**到这里等待软件自动完成安装,安装完成后进行重启即可。**接下来就可以进行内网穿透了。
三、搭建内网穿透
1. 公网ip服务器准备(也就是租用的阿里云服务器)
一般来说,阿里云所租用的Centos7系统是配备了初始的工具的(例如wget)。所以我们直接使用即可。
1.1 下载frp
# 版本页面
https://github.com/fatedier/frp/releases
# 创建压缩包文件夹
mkdir /opt/software
# 进入文件夹
cd /opt/software
# 路由命名规则:download/版本号/frp_版本号_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
下载的就是这个,如果你是离线环境,可以考虑下载后传输过来。
1.2 解压缩软件
# 创建解压目标文件夹
mkdir /opt/modules
# 解压到目的文件夹
tar -zxvf /opt/software/
# 解压到指定目录
tar -zxvf /opt/software/frp_0.44.0_linux_amd64.tar.gz -C /opt/modules
# 重命名
mv /opt/modules/frp_0.44.0_linux_amd64 /opt/modules/frp
1.3 移除客户端
# 进入安装目录
cd /opt/modules/frp
# 移除客户端
rm -f frpc*
1.4 配置frps
# 配置frps
vim /opt/modules/frp/frps.ini
# 服务通信的端口(自定义)
bind_port = 7000
# 服务端认证的token(自定义)
token = xxxxxx
# 设定web端口号,到时候通过这个端口号访问内网部署的网页
vhost_http_prot = 80
# 服务端管理界面的端口(自定义)
dashboard_port = 7500
# 服务端管理界面的用户名(自定义)
dashboard_user = admin
# 服务端管理界面的密码(自定义)
dashboard_pwd = xxxxx
log_file = ./frps.log
log_level = info
log_max_days = 3
enable_prometheus = true
1.5 测试配置是否成功
cd /opt/modules/frp
./frps -c frps.ini
输入后应该什么反应都没有,使用ctrl+c
强制退出,因为配置了日志文件记录在本文件夹下的frps.log
中,所以可以查看一下是否启动成功。
frps started successlly就说明服务端启动成功,目前我的tcp监听了17000,网页监听了17500
1.6 将fprs作为service配置启动
为了让服务后台运行且自启动,所以配置为服务
# 服务器运行服务创建
vim /lib/systemd/system/frps.service
# 内容 中间ExecStart 后面的 /opt/modules/frp/frps -c /opt/modules/frp/frps.ini 中的路径需要设置成你存放frp文件的路径
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/opt/modules/frp/frps -c /opt/modules/frp/frps.ini
[Install]
WantedBy=multi-user.target
# 编辑完成后 按esc键然后输入 :wq 保存并退出
# 启动frps服务
systemctl start frps.service
# 查看服务状态
systemctl status frps.service
# 设置为开机自启
systemctl enable frps.service
#查看服务运行日志
journalctl -u frps.service
到这里我们就完成了服务端的配置,也就是说接下来需要搞定客户端
2. 内网服务器准备(也就是家里的老旧电脑,已经成功安装好了centos7)
2.1 最小化安装的话,还需要安装一些常用的工具
# 联网条件下
yum -y install nano vim wget curl net-tools lsof zip unzip
- 安装完成
2.2 下载和解压缩软件
此处和服务端一摸一样,也就是上文中1.1和1.2
2.3 移除服务端文件
# 进入安装目录
cd /opt/modules/frp
# 移除客户端
rm -f frps*
2.4 配置frpc
# 进入到frp目录后
cd /opt/modules/frp
# 编辑客户端frpc.ini文件
vim frpc.ini
[common]
# 服务端配置的认证的token
token = xxxxxx
# 服务端的公网IP地址(填写你服务器的ip地址)
server_addr = xxx.xxx.xxx.xxx
# 服务端配置的通信端口
server_port = 7000
# 客户端WebUI地址
admin_addr = 127.0.0.1
# 客户端WebUI端口(自定义)
admin_port = 7400
# 客户端WebUI用户名(自定义)
admin_user = client
# 客户端WebUI用户名(密码)
admin_pwd = xxxxxx
log_file = ./frpc.log
log_level = info
log_max_days = 3
[ssh]
type = tcp
# 访问的本地的地址
local_ip = 127.0.0.1
# 访问本地的端口
local_port = 22
# 远程访问的端口 即通过 服务器IP:10022 可以访问到内网的 127.0.0.1:22
remote_port = 10022
[web]
type = http
# 访问的本地的地址
local_ip = 127.0.0.1
# 访问本地的端口
local_port = 80
# 远程访问的端口 即通过 服务器IP:80可以访问到内网的 127.0.0.1:80
# 此处的remote_port 只是他们内部交互用,实际访问时看vhost_http_port的端口
remote_port = 20080
custom_domains = xxxx(自己的域名)
# 编辑完成后 按esc键然后输入 :wq 保存并退出
如果你要配置多个web,需要解析自己的子域名,然后用域名进行区分
2.5 测试是否成功
cd /opt/modules/frp
./frpc -c ./frpc.ini
2.6 同样将frpc作为service配置启动
# 客户端运行服务创建
vim /lib/systemd/system/frpc.service
# 内容 中间ExecStart 后面的 /opt/modules/frp/frpc -c /opt/modules/frp/frpc.ini 中的路径需要设置成你存放frp文件的路径
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/opt/modules/frp/frpc -c /opt/modules/frp/frpc.ini
[Install]
WantedBy=multi-user.target
# 编辑完成后 按esc键然后输入 :wq 保存并退出
# 启动frps服务
systemctl start frpc.service
# 查看服务状态
systemctl status frpc.service
# 设置为开机自启
systemctl enable frpc.service
#查看服务运行日志
journalctl -u frpc.service
四、至此大功告成
到这里就结束了,可以对端口进行拓展等,目前已经可以使用端口的映射进行ssh操作了。
frp代理与nginx代理
从功能上讲,frp和nginx都是完成了一种代理服务,不过又有所区别。
nginx可以提供本机不同端口之间的相互代理,同时nginx也可以配置其他机器的代理,但是其他机器的IP地址必须可以被其直接访问,例如代理另一台公网服务器的端口,或者代理同一内网下的其他机器的端口。
相比之下,frp服务对于代理设备的要求没有那么严格,它可以代理任何能够建立连接的设备,不管对方是否具有公网IP或者是否在同一内网下。