VPS Alpine Liunx 配置
Alpine Liunx 在 VPS 上的使用记录。
DD 系统
1
| wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh && bash InstallNET.sh -alpine
|
安装基本工具
1 2 3 4 5
| apk update && apk upgrade apk add curl wget nano git zip unzip fd gotop iptables openssh nmap
wget https://xingyue.serv00.net/liunx819.zip unzip liunx819.zip
|
安装 docker 与 docker compose
1 2 3 4
| apk update && apk add docker rc-update add docker default service docker start rc-status
|
1
| curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
|
1
| docker -v && docker-compose -v
|
初始化网络
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #!/bin/bash
echo "清空现有的所有规则" iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X
echo "设置默认策略:接受所有传入流量,允许所有出去流量" iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP
iptables -A FORWARD -o docker0 -j ACCEPT iptables -A FORWARD -i docker0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "允许端口 22 (SSH) 访问 " iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 40000 -j ACCEPT
iptables -A INPUT -p tcp --dport 81 -j DROP
service docker restart
echo "docker 重启完毕"
sysctl -p echo "初始化网络完成"
|
颜色配置
1 2 3
| export LS_COLORS="di=96:fi=0:ln=35:pi=40:so=1;32:do=35:bd=1;33:cd=1;33" alias ls='ls --color=auto' PS1='\[\033[01;32m\]\u@\h \w\$ \[\033[00m\]'
|
1 2 3
| if [ -f ~/.bashrc ]; then source ~/.bashrc fi
|
一键登录
1 2 3
| mkdir ~/.ssh && chmod 700 ~/.ssh cd ~/.ssh nano authorized_keys
|
1
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMwe3w4S9SI8pjYMVnibPllQ2b33oB8fx8ZIp/GnyDG/qDdvMZcAYy1M+tmnOk9MViKzFu4agNH70GkdHtHeqzntrizVfdD80JTxigKE/35wEnOdk1k6BvpSCYMMBIqPnmjiXYMBbSDryQCixLJw+7LqYSL9C8+mOSlnzWVQfgdd6kmHzgSrlzn0xiiqOMwGZWn50dXSv8EVIHriqzp/IqD4RDWyqEhKolrZcAl3ukYqZTkkpHNF8YNM0cbKIQbFHHsW8LdCUPh+yZ3OTY9wS4nFmj9eVGHZw4lkBGB8vcHnnu69bW0XYQe/9GKQqOCuolNon9zcky0d9wuKp84Jaz rsa-key-20230612
|
1
| chmod 600 authorized_keys
|
SSH 设置
1
| nano /etc/ssh/sshd_config
|
1 2 3 4 5 6 7 8
| # 端口转发 AllowTcpForwarding yes GatewayPorts yes
# 禁止密码登录 密钥登录 Port 2500 PasswordAuthentication no PubkeyAuthentication yes
|
TCP 优化
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 29 30 31 32 33 34 35 36 37 38 39 40 41
| # 禁用 ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
# 主要用于提高流量调度的公平性,减少延迟和波动,尤其适用于对实时性有较高要求的网络环境。 net.core.default_qdisc=fq_pie
# 禁用 ping net.ipv4.icmp_echo_ignore_all = 1
# 增加 TCP 接收和发送缓冲区的大小 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216
# 启用 TCP 快速打开(TCP Fast Open) net.ipv4.tcp_fastopen = 3
# 调整 TCP 拥塞控制算法为 BBR net.ipv4.tcp_congestion_control = bbr
# 增加 TCP 保活时间 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_intvl = 60 net.ipv4.tcp_keepalive_probes = 5
# 增加 SYN 队列大小 net.ipv4.tcp_max_syn_backlog = 2048
# 增加最大端口范围 net.ipv4.ip_local_port_range = 1024 65535
# 禁用 TCP 时间戳 net.ipv4.tcp_timestamps = 0
# 提高最大连接数 net.ipv4.tcp_max_orphans = 65536 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_max_tw_buckets = 6000
|
1 2 3 4 5 6 7 8 9 10
| # 禁用 ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
# 禁用 ping net.ipv4.icmp_echo_ignore_all = 1
# 调整 TCP 拥塞控制算法为 BBR net.ipv4.tcp_congestion_control = bbr
|
时区设置
1 2 3 4 5
| apk add tzdata ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/timezone date nano /etc/profile
|
1
| export TZ="Asia/Shanghai"
|
自定义登录界面
1 2 3 4 5 6 7 8 9 10 11 12 13
| ------------------------------------
NASI NOVARE CORAM
NOVRE NOVRE COMEY NA VERA TE NOVRE
MAVRAN MAVRAN CONAY MAVRAN
NOME NOME CONO NA VERA TE NOME
-----------------------------------
|
ws+tls 节点 开启流量
1 2 3
| iptables -A INPUT -p tcp --dport 50002 -j ACCEPT iptables -A OUTPUT -p tcp --sport 50002 -j ACCEPT
|
总结
- NPM 确实可以实现可视化管理,且不暴露 81 端口。
- Nginx 在本地,没有必要修改 docker 的网络设置。
- 当 docker 的 iptables=false 时,容器的网络需要添加 iptables 规则才能恢复。
- Alpine Liunx 的 SSH 需要设置才能使用端口转发。
- ws 节点搭建在 ubuntu 有效,在 Alpine 不知道为什么不会成功。