嘟嘟社区

[经验] VPS 的默认配置(常用)


修改 root 密码(对于很多人来说可能不需要设置 root 密码,据说 root 用户没有密码更安全呢)

sudo passwd root
切换到 root 权限以及环境。

su –
更新库,安装常用软件

apt update && apt full-upgrade -y && apt autoremove && apt autoclean

apt install sudo htop git wget curl screen emacs-nox net-tools -y
开启 BBR,root 账户执行

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf

echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

sysctl -p
检查 bbr 状态

sysctl net.ipv4.tcp_congestion_control | grep bbr
下面的命令不需要 root 权限了,如果你也进入了 root 环境,记得退出来。

exit
设置 git 账户信息,指定 git 的编辑器。

git config –global user.name "acytoo" # 你的用户名

git config –global user.email [email protected] # 你的邮箱

git config –global core.editor emacs
安装 zsh,oh-my-zsh 框架

sudo apt install zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
安装两个小玩具

sudo apt install toilet lolcat
设置 bullet-train 主题

wget https://raw.githubusercontent.com/caiogondim/bullet-train.zsh/master/bullet-train.zsh-theme -O $ZSH/themes/bullet-train.zsh-theme

emacs ~/.zshrc
将下列配置写入到 ~/.zshrc 中

export PATH=$HOME/bin:/usr/local/binPATH
export ZSH="$HOME/.oh-my-zsh"

ZSH_THEME="bullet-train"
BULLETTRAIN_PROMPT_ORDER=(
    time
    status
    custom
    context
    dir
    virtualenv
    git
    cmd_exec_time
)

DISABLE_AUTO_UPDATE="true"

plugins=(git)

export EDITOR=’emacs’

alias lg="ls | grep"
alias rt="move_to_trash"

move_to_trash () {
    mv "[email protected]" $HOME/.trash
}

ZSH_CACHE_DIR=$HOME/.cache/oh-my-zsh
if [[ ! -d $ZSH_CACHE_DIR ]]; then
  mkdir $ZSH_CACHE_DIR
fi

source $ZSH/oh-my-zsh.sh
echo "Hi, Acytoo" | toilet | lolcat
应用 zsh 配置

source ~/.zshrc
修改默认 ssh 端口

sudo nano /etc/ssh/sshd_config
别急着删除默认的端口号,在默认端口号下面添加一个新的端口号,试试能不能连接,能正常连接,再删除默认端口号。

Port 22
Port 23456 # 设置一个端口号
然后重启 sshd 进程,应用修改

sudo systemctl restart sshd
通过新端口号连接,本地执行

ssh username@domain -p 23456
每次修改 ssh 端口号,都要先能通过新端口号连接,再删除旧端口号,避免端口占用导致奇奇怪怪的问题。

安装 ufw 管理防火墙

sudo apt install ufw
防火墙允许 ssh

sudo ufw allow 23456 # 你的 ssh 连接端口
开启防火墙

sudo ufw enable
开启防火墙后,记得有新的服务要开放相对应的端口。

添加 swap 前,用 free -h 查看你是否有 swap。swap 不是必备的分区,尤其是现在的机器内存都比较大了,很少真正需要到 swap。

添加 swap 。这个是针对小内存又默认没有 swap 分区小机器准备的。但是要注意,swap 分区频繁写入删除的话,算 Disk IO,有的 VPS 提供商可能会因此停止服务。

添加一个1024M的 swap 文件,修改其权限,把这个文件变成 swap,并激活 swap

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile
上面的命令执行完毕,检查 swap,会发现 1024M 大小的 swap:free -h

如果一切正常,将配置写入分区表,每次开机自动配置。

sudo nano /etc/fstab
粘贴下面一行到文件末尾

/swapfile none swap defaults 0 0
系统中有一个配置,是使用 swap 的意愿程度,这个数值越大,系统越愿意使用 swap。 使用cat /proc/sys/vm/swappiness查看当前的意愿程度,默认是 60.

我会调低这个数值,免得被主机提供商以长期高 IO 为由停止服务。

sudo sysctl vm.swappiness=30
内存低于 512M 的机器,其网络性能可能受限于默认的低 buffer size,修改/etc/sysctl.conf[1]。

sudo nano /etc/sysctl.conf
在文件末尾添加下面四行。

net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
然后应用新配置。

sudo sysctl -p
有些机器会自动添加 ipv6 地址,不通的ipv6地址,除了设置为static以外,还可以设置取消自动 ipv6: 修改/etc/sysctl.conf,添加,然后应用配置sudo sysctl -p

net.ipv6.conf.eth0.autoconf=0
此外,Debian 设置静态 ip 的一个例子:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 111.222.123.123
  gateway 111.222.123.193
  netmask 255.255.255.0
  dns-nameservers 8.8.8.8 1.1.1.1
iface eth0 inet6 static
  address 2601:6400:30:cc1b::1234
  gateway 2601:6400:30::1
  netmask 48
  dns-nameservers 2001:4860:4860::6464

好东西,感谢分享
谢谢楼主。。。。。。。。顶
好多经常用到,谢谢分享