linux初始优化设置

最近折腾的一些心得,简单记录下。

1.端口

登录后第一件事修改端口,22会一直被别人扫。所以还是改一下比较好,也可以安装fail2ban。

sed -i 's/Port 22/Port 12345/' /etc/ssh/sshd_config
echo 'ClientAliveInterval 600' >> /etc/ssh/sshd_config
echo 'ClientAliveCountMax 3' >> /etc/ssh/sshd_config
service sshd restart

第1行的12345改成自己需要的端口号。后面两项设置是为了在非正常退出后(比如突然断网),自动关闭sshd进程,不然进程会一直残留,越积越多。

2.时间

可以用tzselect一步一步选择,也可以直接

timedatectl set-timezone 'Asia/Shanghai'

3.网络

(1)首先是DNS。假如DNS设置得不对,会严重的拖速度。
查看当前DNS cat /etc/resolv.conf
设置DNS。假如直接修改resolv.conf,重启后会失效。永久修改则:

echo supersede domain-name-servers 8.8.8.8, 8.8.4.4;' >> /etc/dhcp/dhclient.conf

(2)禁用IPv6。这个看需求了,反正离普及还早,我测试过在很多情况下,IPv6会拖解析速度,有的程序会先自动查询IPv6地址。

echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.eth0.disable_ipv6 = 1" >> /etc/sysctl.conf

(3)优化网络。这里针对小内存个人使用,和大内存建站分别设置。
假如是小内存个人使用,那么只需要增加TCP缓冲区内存就够了,其他的可以不用设置。因为是用内存换性能,小内存还是节约点用。

echo "net.ipv4.tcp_rmem = 4096 87380 16777216" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 65536 16777216" >> /etc/sysctl.conf

tcp_mem(3个INTEGER变量):low, pressure, high 单位是字节。
low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。
pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。
high:允许所有tcp sockets用于排队缓冲数据报的页面量

因为油管视频缓冲是不断下载一个一个的小文件,最大不超过4M。所以实际上第三个变量设为大于4M也能有很好的加速效果。
至于设置为16M,主要是针对G口。更大的数值个人感觉就没什么必要了。

如果建站则要修改文件打开数限制。

fs.file-max = 51200
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_mtu_probing = 1

4.增加swap

只记录比较简单的一种无需分区的方法。

dd if=/dev/zero of=/swapfile bs=1M count=256
mkswap /swapfile
swapon /swapfile
echo '/swapfile        swap            swap    defaults        0       0' >> /etc/fstab

讲道理