Sep 19

一直更新记录吧,老了记性太差了。 :sad: :sad: :sad:

#强化随机熵
sudo apt install haveged

#开启 bbr
sudo nano /etc/sysctl.conf

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

sudo sysctl -p

#shadowsocks offcial tweak
sudo nano /etc/sysctl.conf

# max open files
fs.file-max = 81920
# max read buffer
net.core.rmem_max = 67108864
# max write buffer
net.core.wmem_max = 67108864
# default read buffer
net.core.rmem_default = 65536
# default write buffer
net.core.wmem_default = 65536
# max processor input queue
net.core.netdev_max_backlog = 4096
# max backlog
net.core.somaxconn = 4096

# resist SYN flood attacks
net.ipv4.tcp_syncookies = 1
# reuse timewait sockets when safe
net.ipv4.tcp_tw_reuse = 1
# turn off fast timewait sockets recycling
net.ipv4.tcp_tw_recycle = 0
# short FIN timeout
net.ipv4.tcp_fin_timeout = 30
# short keepalive time
net.ipv4.tcp_keepalive_time = 1200
# outbound port range
net.ipv4.ip_local_port_range = 10000 65000
# max SYN backlog
net.ipv4.tcp_max_syn_backlog = 4096
# max timewait sockets held by system simultaneously
net.ipv4.tcp_max_tw_buckets = 5000
# turn on TCP Fast Open on both client and server side
net.ipv4.tcp_fastopen = 3
# TCP receive buffer
net.ipv4.tcp_rmem = 4096 87380 67108864
# TCP write buffer
net.ipv4.tcp_wmem = 4096 65536 67108864
# turn on path MTU discovery
net.ipv4.tcp_mtu_probing = 1

# for high-latency network
net.ipv4.tcp_congestion_control = hybla

# for low-latency network, use cubic instead
# net.ipv4.tcp_congestion_control = cubic

# for 4.9+
# net.ipv4.tcp_congestion_control = bbr

sudo vim /etc/security/limits.conf

* soft nofile 81920
* hard nofile 81920
www-data soft nofile 81920
www-data hard nofile 81920
root soft nofile 81920
root hard nofile 81920

sudo nano/etc/pam.d/common-session

session required pam_limits.so

#给予程序监听底端口权限
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/local/sbin/overture
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/caddy

#ubuntu 允许所有进出站
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo netfilter-persistent save
sudo systemctl restart netfilter-persistent

#启用 rc.local
sudo nano /etc/systemd/system/rc-local.service

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

#改 DNS
sudo nano /etc/netplan/50-cloud-init.yaml

nameservers:
addresses: [8.8.8.8, 8.8..4.4]
addresses: [1.1.1.1, 1.0.0.1]

sudo netplan apply or sudo netplan --debug apply

systemd 文件打开限制解除:

打开 /etc/systemd/system.conf 和 /etc/systemd/user.conf ,修改:

DefaultLimitNOFILE=81920

重启.

参考:

https://ro-che.info/articles/2017-03-26-increase-open-files-limit
https://github.com/syncthing/syncthing/issues/5319
https://3proxy.ru/highload.asp

Tags: , ,

Aug 18

root 用户编译 toolchain 要加:

export FORCE_UNSAFE_CONFIGURE=1

直接上脚本:(https://gist.github.com/rampageX/28ca79a9812fe684650be9ac18df84fe)

#!/bin/bash

apt-get install -y distcc distcc-pump ccache

sed -ie 's/STARTDISTCC="false"/STARTDISTCC="true"/' /etc/default/distcc
sed -ie 's/ALLOWEDNETS="127.0.0.1"/ALLOWEDNETS="192.168.0.0\/16 172.16.0.0\/12 10.0.0.0\/8"/' /etc/default/distcc
sed -ie 's/LISTENER="127.0.0.1"/LISTENER="0.0.0.0"/' /etc/default/distcc
sed -ie "s/JOBS=\"\"/JOBS=\"`grep processor /proc/cpuinfo | wc -l`\"/" /etc/default/distcc
sed -ie 's/ZEROCONF="false"/ZEROCONF="true"/' /etc/default/distcc
#PATH here? https://midnightyell.wordpress.com/2012/10/14/a-good-compromise-cross-compiling-with-distcc/
echo "PATH=/opt/tomatoware/arm-soft-mmc/usr/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" >> /etc/default/distcc

service distcc restart

echo 'CCACHE_PREFIX="distcc"' > /etc/profile.d/ccache-distcc.sh
echo 'CC="ccache gcc"' >> /etc/profile.d/ccache-distcc.sh

#for tomatoware, arm-linux-gcc etc. must in service path, or error code 110 on Router.
sed -ie 's~/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin~PATH=/opt/tomatoware/arm-soft-mmc/usr/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin~' /etc/init.d/distcc

#Tomatoware REF: https://github.com/lancethepants/tomatoware/wiki/Using-distcc

#apt-get install Error and Fix: https://github.com/distcc/distcc/issues/311
#`Traceback (most recent call last): File "/usr/bin/update-distcc-symlinks", line 39, in for gnu_host in os.listdir(gcccross_dir): FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/gcc-cross'`

#Fixed by disable following code:
#`for gnu_host in os.listdir(gcccross_dir): consider_gcc("%(gnu_host)s-" % vars(), "") for version in os.listdir(gcccross_dir + "/" + gnu_host): consider_gcc("", "-%(version)s" % vars()) consider_gcc("%(gnu_host)s-" % vars(), "-%(version)s" % vars())`


Aug 18

两行:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
#下面任选1个
#Ubuntu
#中科大
sudo sed -i 's~ports.ubuntu.com~mirrors.ustc.edu.cn/ubuntu-ports/~g' /etc/apt/sources.list
#清华
sudo sed -i 's~ports.ubuntu.com~mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/~g' /etc/apt/sources.list
#阿里云
sudo sed -i 's~ports.ubuntu.com~mirrors.aliyun.com/ubuntu-ports/~g' /etc/apt/sources.list
#台湾
sudo sed -i 's~ports.ubuntu.com~tw.archive.ubuntu.com/ubuntu-ports/~g' /etc/apt/sources.list
#Debian
#中科大
sudo sed -i 's~httpredir.debian.org~mirrors.ustc.edu.cn~g' /etc/apt/sources.list
#清华
sudo sed -i 's~httpredir.debian.org~mirrors.tuna.tsinghua.edu.cn~g' /etc/apt/sources.list
#阿里云
sudo sed -i 's~httpredir.debian.org~mirrors.aliyun.com~g' /etc/apt/sources.list
#台湾
sudo sed -i 's~httpredir.debian.org~tw.archive.ubuntu.com~g' /etc/apt/sources.list

Security 源:

deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free


Mar 30

NFS 比 SAMBA 稳定,速度也快,所以决定用 NFS 取代 PHICOMM N1上的 SAMBA 共享。

一. 服务端,N1 运行 Ubuntu 18.04 版本,IP 为 192.168.2.20。

1. 首先停用 SAMBA。

sudo systemctl stop smbd
sudo systemctl disable smbd

2. 安装 NFS 服务组件:

sudo apt-get install nfs-kernel-server

3. 配置 NFS:

sudo nano /etc/exports

添加需要共享的目录,例如:

#共享目录 #允许的客户端网段(挂载选项)
/sync 192.168.2.0/24(rw,sync,no_subtree_check)

如果要为 Android 系统(例如电视盒子等)或者 OSX 等提供服务,需要加 insecure 参数:

#共享目录 #允许的客户端网段(挂载选项)
/sync 192.168.2.0/24(rw,async,insecure,no_subtree_check)

4. 重启 NFS 服务即可:

sudo systemctl restart nfs-server

二. 客户端,Windows 10,需要企业版。

1. 首先启用 NFS 客户端:控制面板\程序\程序和功能 - 启用或关闭 Windows 功能,选中 NFS 服务 下的 NFS 客户端

2. 此时进入 CMD 命令行可以测试连接:

showmount -e 192.168.2.20

完整用法

showmount -e [server] 显示 NFS 服务器导出的所有共享。
showmount -a [server] 列出客户端主机名或 IP 地址,以及使用“主机:目录”格式显示的安装目录。
showmount -d [server] 显示 NFS 服务器上当前由某些 NFS 客户端安装的目录。

3. 此时挂载后只能读不能写,如需读写,需要修改注册表:
通过修改注册表将 Windows 10 访问 NFS 时的 UID 和 GID 改成 0 即可(其实就是 Linux 下的 root),步骤如下:
a、在运行中输入 regedit,打开注册表编辑器;
b、进入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default 条目;
c、选择新建 DWORD 值,新建 AnonymousUid,AnonymousGid 两个值,值为 0;
d、重启系统;

4. 如临时使用,可用命令行挂载:

mount \\192.168.2.20\sync S:

注意,如果挂载后在我的电脑里不显示盘符,请退出管理员权限的 CMD,卸载后在普通权限的 CMD 下重新挂载!

完整用法:

用法: mount [-o options] [-u:username] [-p: ] <\\computername\sharename>

-o rsize=size 设置读取缓冲区的大小(以 KB 为单位)。
-o wsize=size 设置写入缓冲区的大小(以 KB 为单位)。
-o timeout=time 设置 RPC 调用的超时值(以秒为单位)。
-o retry=number 设置软装载的重试次数。
-o mtype=soft|hard 设置装载类型。
-o lang=euc-jp|euc-tw|euc-kr|shift-jis|big5|ksc5601|gb2312-80|ansi
指定用于文件和目录名称的编码。
-o fileaccess=mode 指定文件的权限模式。
这些模式用于在 NFS 服务器上创建的
新文件。使用 UNIX 样式模式位指定。
-o anon 作为匿名用户装载。
-o nolock 禁用锁定。
-o casesensitive=yes|no 指定在服务器上执行区分大小写的文件查找。
-o sec=sys|krb5|krb5i|krb5p

5. 如需要重启后自动挂载,可以向添加 SAMBA 共享一样使用磁盘映射,格式也一样,但需要注意:卸载时不要使用资源管理器的 “断开网络驱动器”,要去命令行用:

umount S:

卸载,如果要卸载全部 NFS 网络驱动器,用:

umount -f -a


May 10

其实就是注意 -ldl 放的位置,之前放在 LDFLAGS 最后老是提示 -lcrypto 错误(这样放,在路由器上编译好像没事~~ :evil: ):

make clean

LIBS="-ldl" LDFLAGS="-Wl,-static -static -static-libgcc" ./configure --host=arm-brcm-linux-uclibcgnueabi CC=arm-brcm-linux-uclibcgnueabi-gcc --with-openssl=/home/punk/arm_apps/libs/openssl

make -j`nproc`


[1/2]  1 2 >