tags: Ubuntu Server Tips Config
写在前面
最近通过帅地的公众号get了一个一年的阿里云轻量应用服务器, 2核4GB, 磁盘60GB,流量1100GB, 感觉还是相当够用的. 一开始我就将其当成一个x86_64
架构的虚拟机了, 但是后来发现这样实在是有点浪费了, 云服务器能做的事情可真是多. 之前就了解过的内网穿透服务器就可以用云服务器来搭建, 此外还可以做一些个人站点之类的. 话不多说, 我们先来配置一下这座’毛坯房’, 让它能够适应我们的需求.
系统镜像我选择了Ubuntu当前支持的最新版本20.04(focal), 毕竟是最大众化的一款Linux发行版了, 用着顺手.
之后可以通过重置镜像的方式更改.
ssh链接:秘钥文件+密码
由于平台默认已经为我们分配了公网ip, 此时就可以远程连接到云服务器了, 只需要在管理界面配置一下远程登录的密码即可, 但是这样会比较麻烦, 密码8位带字母数字, 每次都要输入一遍. 这里建议通过秘钥文件的方式来连接(确保安全的前提下), 管理面板上有详细的操作流程.
下面我设置了一个快捷命令, 连服务器更加顺手了:
alias ubt='ssh -i /Users/xxx/.ssh/ssh1.pem root@<公网IP>'
需要注意这样设置之后, 密码登录会失效, 需要修改/etc/ssh/sshd_config
文件的最后一行, 将PasswordAuthentication no
, 改为PasswordAuthentication yes
, 然后重启服务sudo systemctl restart sshd
, 最后重启服务器:reboot
, 这样就能看到生效了, 用手机端termux连服务器, 美滋滋~
后续的操作也基本都是通过ssh链接进行的.
镜像
这里阿里云直接帮我们设置为自己家的软件源镜像了, 速度相当快.
安装基本工具
查看系统信息
apt install neofetch
.-/+oossssoo+/-.root@xxx`:+ssssssssssssssssss+:` -----------------------------+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04.1 LTS x86_64.ossssssssssssssssssdMMMNysssso. Host: Alibaba Cloud ECS pc-i440fx-2.1/ssssssssssshdmmNNmmyNMMMMhssssss/Kernel: 5.4.0-47-generic+ssssssssshmydMMMMMMMNddddyssssssss+Uptime: 12 hours, 36 mins/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 2121 (dpkg).ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.0.17+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 1024x768ossyNMMMNyMMhsssssssssssssshmmmhssssssso Terminal: /dev/pts/1ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon Platinum 8269CY (2) @ 2.499GHz+sssshhhyNMMNyssssssssssssyNMMMysssssss+ GPU: 00:02.0 Cirrus Logic GD 5446.ssssssssdMMMNhsssssssssshNMMMdssssssss. Memory: 1126MiB / 3748MiB/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/+sssssssssdmydMMMMMMMMddddyssssssss+/ssssssssssshdmNNNNmyNMMMMhssssss/.ossssssssssssssssssdMMMNysssso.-+sssssssssssssssssyyyssss+-`:+ssssssssssssssssss+:`.-/+oossssoo+/-.
编译工具链
apt install gdb make
MySQL
apt install mysql-serverapt install libmysqlclient-dev # 解决<mysql/mysql.h>找不到的问题
防火墙工具
这个算是相当重要了, 因为之后的网络服务都要通过防火墙, 不安装当然也可以, 但是会不安全, 之后在内网穿透部分我也会提到这个.
apt install firewalldapt install iptables-services
开启服务:
systemctl start firewalld
查看版本和当前运行状态:
firewall-cmd --versionfirewall-cmd --state
node.js
后面的clash配置要用:
apt install nodejsapt install npm
npm镜像设置:
npm_config_registry= npx npm-mirror-set taobao
安装pm2(应用管理):
npm install pm2 -g
图形界面
这里虽说云服务器加GUI实属没必要, 不过有时候做一下Webserver的话不开个浏览器实在是看不到效果, 安一个基本的就够了(因为是真的卡, 甚至不如自己本地搭建的multipass). 这里参考了1:
apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
还要安装一个叫做vnc的东西, 有了这个方便的小工具, 我们才能通过vnc-viewer这款软件(在Mac)上查看远程服务器的图形化界面.
apt-get install tightvncserver
或者通过aptitude
安装vnc4server
, 两者功能是一样的.
apt-get install aptitudeaptitude install vnc4server
需要注意镜像的问题2, 修改
vi /etc/apt/sources.list
, 在第一行加上
deb /ubuntu/ bionic universe
然后更新镜像
apt update
.
完成之后, 在Mac上安装vnc-viewer
:
brew install vnc-viewer
通过输入vncserver
启动vncserver
, 修改配置文件:vim ~/.vnc/xstartup
.如下:
#!/bin/shexport XKL_XMODMAP_DISABLE=1export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"export XDG_MENU_PREFIX="gnome-flashback-"gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &vncconfig &
这里我就用了官方给的配置, 最后一行是开启剪贴板支持(不过我感觉好像没起作用).
防火墙端口开启
这里还有一个重要的步骤, 就是关于防火墙的端口开启设置, 需要开启的端口为5900
和5901
, 这个1
就是之前vncserver
默认的第一个实例. 在管理界面中右上角添加规则:
由于前面设置过了防火墙, 这里就需要先添加相应的端口, 这里参考了3, 思路都是一样的:
firewall-cmd --zone=public --add-port=5900/tcp --permanentfirewall-cmd --zone=public --add-port=5901/tcp --permanent
查看端口状态:
firewall-cmd --query-port=5900/tcpfirewall-cmd --query-port=5901/tcp
netstat
查看服务器是否开启了任务监听对应端口:
sudo netstat -tunlp | grep 5901
这里应该显示如下:
tcp6 00 :::5901 :::*LISTEN5502/Xvnc4
查看防火墙的端口开放情况:(对5900亦然, 下同)
sudo iptables -L -n --line-numbers | grep 5901
若没有, 需要用下面的方法开启:
sudo iptables -I INPUT -ptcp --dport 5901 -j ACCEPT
最后刷新防火墙:
firewall-cmd --reload
端口部分就完成了.
重启vnc:
vncserver -kill :1 && vncserver -geometry 1920x1080 :1
打开Mac本机的vnc-viewer, 输入:<公网IP>:1
, 其他默认, 即可连接.
配置代理
方便GitHub等的访问, 这里采用了clash命令行客户端, 参考了4.
wget /Dreamacro/clash/releases/download/v1.11.12/clash-linux-amd64-v1.11.12.gzgzip -d clash-linux-amd64-v1.11.12.gzmv clash-linux-amd64-v1.11.12 clashmkdir /opt/clashmv clash /opt/clash/clashcd /opt/clashchmod 755 clash./clash -v# Clash v1.11.12 linux amd64 with go1.19.3 Fri Nov 4 05:30:39 UTC
在/opt/clash
中新建:
vi start_clash.sh# 加入如下内容:./clash -d .
然后开启:
chmod 755 start_clash.shpm2 start start_clash.sh
此时可以看到:
最后同样, 加个快捷指令:
alias uvpn='pm2 stop /opt/clash/start_clash.sh'alias vpn='pm2 start /opt/clash/start_clash.sh'
以及:
alias vv="export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891"alias uv="unset https_proxy http_proxy all_proxy"
终端上GitHub的问题就可以解决了, 下面测试一下(with Google):
curl -vvv
* Uses proxy env variable http_proxy == 'http://127.0.0.1:7890'* Trying 127.0.0.1:7890...* TCP_NODELAY set* Connected to 127.0.0.1 (127.0.0.1) port 7890 (#0)> GET / HTTP/1.1> Host: > User-Agent: curl/7.68.0> Accept: */*> Proxy-Connection: Keep-Alive...<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 Moved</TITLE></HEAD><BODY><H1>301 Moved</H1>The document has moved<A HREF="/">here</A>.</BODY></HTML>* Connection #0 to host 127.0.0.1 left intact
关闭之后:
也可以通过pm2 list
查看运行状态.
开多了运行程序可以用pm2 delete <id>
删掉.
ref
通过VNC搭建Ubuntu 18.04和20.04图形界面 (); ↩︎
阿里云 腾讯云 服务器Ubuntu 20.04安装图形界面,解决灰屏问题,解决复制粘贴问题,并调整分辨率大小_Big Z的博客-CSDN博客_阿里云ubuntu安装图形界面; ↩︎
腾讯云frp连接失败。login to server failed: dial tcp x:7000: connectex: A connection attempt failed because_Ts势的博客-CSDN博客_frp无法连接; ↩︎
如何让国内的阿里云服务器可以高速下载Github代码 – V2方圆 (); ↩︎