基于Ubuntu 22.04.5的个人服务器折腾记录(物理机安装/VNC/1Panel/Frp穿透/Qbittorrent/Wordpress/RSSHub/STUN穿透)2025.1.16持续更新中
一、前言
本文用于记录笔者自用的一台服务器的折腾过程,包含Ubuntu系统安装和各种我需要的软件的部署,一方面作为笔记方便以后可能的重复折腾,另一方面也给可能有相似需求的朋友作为经验,仅供参考。如果有朋友要参考的话请结合自己需求操作。
二、物理机安装Ubuntu 22.04.5
系统选用不带桌面的ubuntu-22.04.5-live-server-amd64(server版本),因为笔者发现desktop版的的Ubuntu装VNC桌面时巨麻烦,但server版的很方便,再加上这本来就是一台服务器。笔者自用的物理机是一台迷你主机,已经装好了,所以本文使用一台闲置笔记本电脑作为示范,大概没什么区别。
1.制作安装U盘
Ubuntu镜像下载渠道很多,可以从官网也可以从镜像站下载。笔者选择从中科大镜像站下载:Index of /ubuntu-releases/22.04.4/
下载后使用rufus制作安装盘,rufus自己搜,找个能用的U盘插上,打开rufus后拖入镜像文件,一切保持默认就好,注意U盘内容会被清空,点击开始。
2.物理机安装
接下来因为是在笔记本屏幕上,再加上我也没有什么采集卡,所以为了省事要短暂变身为愚蠢的拍屏者,勿吐槽。
物理机插入U盘,开机后狂按Del/F1/F2/F10/Esc(取决于你自己的电脑,自己查是哪个键,也可以像我一样伸出十根手指全捅了)进入BIOS,选择U盘启动。
选择Try or Install Ubuntu Server进入安装界面。
大部分内容保持默认就行,英文也不难看懂,自己根据自己需要设置,笔者挑几个重要的来记录。
联网页面,通常只要机器插了网线就行,我这里笔记本懒得挪动所以连个WiFi。
使用笔记本的整个硬盘安装Ubuntu。
设置你的机器名、初始用户名和密码。
安装OpenSSH,SSH登录后面章章都要用,虽然安装完后也能手动装,但这里点上会省事点。
等待安装完毕即可。
安装完成后重启,系统会提示你拔掉U盘并按Enter进入系统。
先后输入用户名和密码即可登入系统。
三、安装VNC远程桌面
Server版Ubuntu没有自带桌面,但包括我在内的一部分人没有图形界面就浑身难受,再加上Qbittorrent还是有个图形界面才好用,所以这里记录如何安装tightvncserver。
本章大量参考了零基础给Linux服务器安装VNC远程桌面环境 - 雨月空间站的内容,在此感谢大佬的分享。
1.SSH连接服务器
为了避免继续当愚蠢的拍屏者,笔者决定使用SSH连接服务器,而不是在笔记本上直接打字(其实主要原因是用SSH可以直接拷贝命令)。首先需要一个SSH客户端,种类有很多,甚至直接用Windows命令行都行。笔者喜欢MobaXterm,因为它可以拖拽传输文件,不用打SCP命令那么麻烦。
MobaXterm软件官网:MobaXterm free Xserver and tabbed SSH client for Windows
进入软件后点左上角Session,点击SSH,Remote host填局域网内你服务器的地址,获取方式是服务器命令行输入ifconfig,Username填你安装时写的用户名。在此之前请确保服务器和你的客户端电脑在同一局域网内。
#安装net-tools
sudo apt install net-tools
ifconfig
输入你安装时写的密码。
2.安装Xfce桌面系统和tightvncserver
Ubuntu其实有很多桌面系统,比如Desktop版自带的GNOME、肉桂、Xfce、KDE Plasma、Mate之类的,大伙可以自己研究。笔者喜欢Xfce,因为它轻量。装VNC前一定要先装一个桌面系统,本节记录安装Xfce桌面和tightvncserver的过程。
特别提醒:不建议用root超级用户连接VNC,会出bug,没什么特别需求就用安装时创建的那个用户就好,以下代码使用该用户执行,记得联网:
#更新软件源
sudo apt update
#安装Xfce桌面
sudo apt install xfce4 xfce4-goodies
#安装tightvncserver
sudo apt install tightvncserver
#初次启动vncserver,系统会让你设置一个密码
#设置完密码后问你需不需要view-only密码,我一般填n
vncserver
此时,一个默认配置的VNC桌面就已经运行在5901端口上了。我们可以先关闭这个默认桌面,用一条新命令定义分辨率:
#关闭5901端口上的VNC桌面
vncserver -kill :1
#运行分辨率为1920x1080的VNC桌面
vncserver :1 -geometry 1920x1080 -depth 24
3.连接VNC桌面
连接VNC桌面也需要特定客户端,Windows自带的RDP是不行的。笔者最喜欢RealVNC Viewer:Download VNC Viewer by RealVNC®
打开软件后在地址栏中输入“服务器IP:5901”,按enter连接:
点击continue并输入你刚刚vncserver时设的密码:
一个清爽的桌面就会出现在你面前。
此时如果该桌面上出现中文会变成乱码,还需要额外设置。
# 安装中文字体
sudo apt install ttf-wqy-zenhei
# 设置系统语言
sudo dpkg-reconfigure locales
用滚轮和方向键划到最下面,选中zh_CN.UTF-8 UTF-8,按空格标记后按回车确认。
再次选中zh_CN.UTF-8,按回车确认。
重新启动VNC桌面,可见中文已经能够正常显示。
4.设置VNC桌面开机自动启动
在不做任何设置的情况下,VNC桌面在电脑重启时不会自动开启,导致每次开机都需要手动输一遍命令,非常麻烦。我们可以将VNC桌面的启动命令设为系统服务,让服务器重启时自动启动VNC桌面。
#进入系统服务目录
cd /etc/systemd/system/
#创建新服务设置
sudo vim vncserver@:1.service
进入文件编辑页面,按i键进入编辑模式,粘贴内容如下:
# vncserver service file for Debian or Ubuntu with systemd
#
# Install vncserver
# e.g. sudo apt install tightvncserver
#
# 1. Add file /etc/systemd/system/vncserver_.service
# e.g sudo vi /etc/systemd/system/vncserver_stephen.service
# 2. Edit User=
# e.g "User=stephen"
# 3. Edit Environment=
# e.g "Environment="HOME=/home/stephen" "USER=stephen""
# 4. Edit the vncserver parameters in the ExecStart
# e.g. "ExecStart=/usr/bin/vncserver -geometry 1280x800 -depth 16 -dpi 120 -alwaysshared -localhost :1"
# 5. Run `sudo systemctl daemon-reload`
# 6. Run `sudo systemctl enable vncserver_.service`
# e.g sudo systemctl enable vncserver_stephen.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=
Environment="HOME=/home/" "USER="
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
需要注意的是,以上文本中
# vncserver service file for Debian or Ubuntu with systemd
#
# Install vncserver
# e.g. sudo apt install tightvncserver
#
# 1. Add file /etc/systemd/system/vncserver_.service
# e.g sudo vi /etc/systemd/system/vncserver_stephen.service
# 2. Edit User=
# e.g "User=stephen"
# 3. Edit Environment=
# e.g "Environment="HOME=/home/stephen" "USER=stephen""
# 4. Edit the vncserver parameters in the ExecStart
# e.g. "ExecStart=/usr/bin/vncserver -geometry 1280x800 -depth 16 -dpi 120 -alwaysshared -localhost :1"
# 5. Run `sudo systemctl daemon-reload`
# 6. Run `sudo systemctl enable vncserver_.service`
# e.g sudo systemctl enable vncserver_stephen.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=zhoudreams
Environment="HOME=/home/zhoudreams" "USER=zhoudreams"
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
输入完成后按ESC退出编辑模式,输入:wq保存文件,输入以下命令启用服务:
#启用服务
sudo systemctl enable vncserver@:1
#启动服务
sudo systemctl start vncserver@:1
#查看服务状态
sudo systemctl status vncserver@:1
可见该服务状态为active (running),采用上一节的方法测试,可以连接桌面。
重启系统,再次进行测试,同样可以直接连接桌面,设置完成。
5.安装Microsoft Edge浏览器
笔者发现VNC桌面上系统自带的网络浏览器无法启动,原因不明,所以决定装一个自己最惯用的Microsoft Edge浏览器。
进入Edge浏览器官网下载:下载 Microsoft Edge
点击“继续下载Edge”,划到下面下载Linux (.deb)
下载完成后需要将安装包发送到服务器上,可以用scp命令,用法自己查;或者用MobaXterm自带的传文件功能直接拖进去。
接下来安装该安装包:
#进入你安装包存放的位置,我放在home
cd ~
#安装包名以你下载的为准,可以按tab自动补全
sudo apt install ./microsoft-edge-stable_131.0.2903.112-1_amd64.deb
按Y安装,安装完成后进入VNC桌面,点击左上角所有应用程序-互联网-Microsoft Edge即可启动。
四、安装1Panel面板
笔者向来认为一个服务器应该要有一个管理面板才算那么一回事,因此安装一个1Panel面板。1Panel - 现代化、开源的 Linux 服务器运维管理面板 - 官网
根据官网doc,运行以下命令安装:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
按照脚本提示安装即可,没有什么难点。
笔者将用户名设为zhoudreams,端口设为8888,安全登录入口设为login,根据自己喜欢设置就行。
笔者并不喜欢这个所谓安全入口,在这里直接用命令停用掉。
sudo 1pctl reset entrance
外部地址在非公网IP且没穿透的情况下通常是没用的(常识);浏览器输入“内网IP:端口”进入面板并登录。
这个面板的功能还挺多的,大家可以自行探索。
五、部署Frp客户端
上一章笔者提过一嘴“外部地址在非公网IP且没穿透的情况下通常是没用的”,想必大伙也会发现服务器的面板只有在局域网内才能访问。如果想要在外网访问这台服务器,则需要八仙过海的手段,本章介绍的Frp代理就是其中一种。
如果你的服务器拥有公网IP,就不需要什么Frp代理;但如果没有,比方说是放在家里通过家宽联网的家庭服务器,则Frp是内网穿透的常用手段之一。将Frp服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,就可以反向代理到处于内网的服务,好比拿已经拥有公网IP的、便宜的云服务器当作桥梁来访问处于NAT环境的家庭服务器。这不仅可以让你在外网访问1Panel面板,还可以访问很多别的服务。
Frp代理的缺点是显而易见的,它需要你已经拥有一台有公网IP的云服务器,而且代理的网速会受到该云服务器的带宽限制。笔者之前从某云服务商薅到一台几十块钱一年的云服务器,假设该服务器的IP地址为example.com(实际IP不透露),Frp服务端端口为默认的7000,以此为例介绍本章内容。
1.获取Frp客户端程序
Frp官网:https://gofrp.org/
Github页面:https://github.com/fatedier/frp
在Release页面获取对应最新版本,笔者这里下载Linux的amd64版本。
2.配置Frp客户端
下载完成后用前文方法上传到服务器,笔者这里上传到Home目录,运行命令解压tar.gz:
#进入主目录
cd ~
#解压缩
tar -xvzf frp_0.61.1_linux_amd64.tar.gz
#进入解压后文件夹
cd frp_0.61.1_linux_amd64/
可以看到,Frp目录下包含四个文件:frpc(客户端程序)、frpc.toml(客户端配置文件)、frps(服务端程序)、frps.toml(服务端配置文件),本章需要用到的是前二,而后二是用来部署在那台云服务器上的,由于部署过程跟客户端其实差不多就懒得写了。
使用vim编辑器编辑客户端配置文件:
vim ./frpc.toml
作为示范我们部署两个服务:1Panel面板的访问和VNC面板的访问。我希望将1Panel面板暴露在8080端口,而VNC端口暴露在5901端口,则配置文件这样写:
serverAddr = "example.com" #这里写云服务器的实际地址
serverPort = 7000
[[proxies]]
name = "1panel"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8888
remotePort = 8080
#这里localPort是本机服务的端口,remotePort是你希望将本机服务暴露在云服务器的公网IP的端口。
#访问example.com:8080就相当于访问本机127.0.0.1:8888
[[proxies]]
name = "vnc"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5901
remotePort = 5901
保存后即可启动Frpc:
./frpc -c frpc.toml
接下来测试服务是否成功运行。分别使用浏览器访问example.com:8080,使用VNC viewer访问example:5901,发现都可外网访问即成功运行。(虽然说我的example.com:8080因为没备案被墙了)
3.设置Frp服务开机启动
跟前面的VNC一样,我们希望Frp客户端可以开机自启动,同样也是创建服务:
sudo vim /etc/systemd/system/frpc.service
service文件内容如下:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=zhoudreams
Environment="HOME=/home/zhoudreams" "USER=zhoudreams"
ExecStart="/home/zhoudreams/frp_0.61.1_linux_amd64/frpc" -c "/home/zhoudreams/frp_0.61.1_linux_amd64/frpc.toml"
Restart=always
[Install]
WantedBy=multi-user.target
注意要将笔者的用户名zhoudreams替换为你自己的用户名。保存后启动服务即可:
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
sudo systemctl status frpc.service
六、安装Qbittorrent客户端
sudo apt install qbittorrent
最方便的一集。
七、部署Wordpress博客软件
八、部署RSSHub
九、部署STUN穿透