修复 Debian 中的 Ping 权限问题

在一个512M vps上安装 Debian Trixie后,发现无法使用 ping命令。尝试执行时,收到错误信息:

ping: socket: Operation not permitted

并且附加提示可能缺少 cap_net_raw+p 权限或 setuid 设置。

不过,使用root用户时ping正常工作,因此问题出在权限上。

搜索后,发现两种方法可以启用ping。

更改 sysctl 权限

如果要对一组用户启用 ping,可以运行以下命令:

……

阅读全文

Debian testing 部署 BBR TCP拥塞算法

Linux 内核4.9 rc8 之后引入了BBR 算法,按以下步骤可以在KVM VPS上打开 增加experimental 源

deb http://ftp.us.debian.org/debian experimental main

安装新版内核:

apt update 
apt -t experimental install linux-image-4.9.0-rc8-amd64-unsigned

增加内核参数开启BBR:

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_available_congestion_control

看一下内核模块有没有加载

lsmod | grep bbr
……

阅读全文

Linux 进程自动重启脚本

把以下源码存成脚本,并赋予执行权限.

 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
#!/bin/sh
#函数:CheckProcess
#功能:检查一个进程是否运行正常
#参数:$1--要检查的进程名称
#返回:如果运行正常返回0,否则返回1
CheckProcess()
{
# 检查输入的参数是否有效
if [ "$1" = "" ];
then
return 1
fi
#$PROCESS_NUM获取指定进程名的数目
#如果值为1返回0,表示正常
#如果不为1则返回1,表示有错误,需要重新启动
#如果正常状态是多进程运行,则按进程数目修改
PROCESS_NUM=`ps -ef|grep "$1"|grep -v "grep"|wc -l`
if [ $PROCESS_NUM -eq 1 ];
then
return 0
else
return 1
fi
}
#检查是否存在进程
while [ 1 ];do
CheckProcess "./shadowsocks-server";
#$? 是shell标准变量,是上一个函数执行完毕return值
Check_Result=$?
if [ $Check_Result -eq 1 ];
then
#有错误则杀死所有进程,如果并将标准输出及标准错误重定向到/dev/null
#因为如果程序没有运行,进程数为0,你是无法kill的
killall -9 shadowsocks-server > /dev/null 2>&1
exec ./shadowsocks-server > log &
fi
sleep 30
done
……

阅读全文

OpenWrt 破解电信联通等ISP域名劫持

身在天朝,总是被各种各样的流氓强奸,域名解析失败跳转到114导航之类的非常常见的, 现在介绍OpenWrt对付这种流氓行径 的办法。

第一种办法: 第一步,老规矩,先ping一个不存在的域名,得到流氓的ip地址.

第二步,依次输入:

uci add_list dhcp.@dnsmasq[0].bogusnxdomain=[要屏蔽的IP]
uci commit dhcp
/etc/init.d/dnsmasq restart

第三步,cmd 运行ipconfig /flushdns清空本机缓存,然后重复第一步动作,看看有没有 新的流氓的ip地址,如果有,重复第二步,如果没有,则大功告成.

……

阅读全文

sudo 免密码

sudo 的时候免输入密码:

用visudo编辑/etc/sudoers把你的登录名那行改为如下格式:

ID ALL=(ALL) NOPASSWD: ALL

如果没有这行,可以直接新建即可。

改完后运行sudo就不需要密码了,或者直接sudo -i 切换成root用户,相应的可以sudo passwd -l root命令来lock掉root帐号。

……

阅读全文

Debian PHP下用exim4 发邮件

Debian一般使用exim4发信,而不是sendmail

若机器没安装exim,则先执行

apt-get install exim4

exim4默认没有对外联网需要修改

/etc/exim4/update-exim4.conf

找到 dc_eximconfig_configtype=local把 local 改为 internet

dc_local_interfaces=‘127.0.0.1 ; ::1’  代表只允许本机发送邮件

接着重启exim4组件

/etc/init.d/exim4 restart

接着使用 ln -s /usr/sbin/exim /usr/sbin/sendmail

做一个软连接,实际上squeeze 下安装exim4的时候已经做好软连接了。

……

阅读全文

为ubuntu 添加 ppa源

add-apt-repository 这个命令是在python-software-properties软件包,所以要先安装 python-software-properties包:

apt-get install python-software-properties

装完之后,如果想从ppa源安装nginx则:

add-apt-repository ppa:nginx/stable

ok之后就

apt-get update && apt-get install nginx

同理,安装transmission则

add-apt-repository ppa:transmissionbt/ppa
apt-get update && apt-get install transmission-daemon
……

阅读全文

ubuntu debian 设置locale

1.参考 /usr/share/i18n/SUPPORTED格式编辑/var/lib/locales/supported.d/local nano /var/lib/locales/supported.d/local

如: more /var/lib/locales/supported.d/local zh_CN.UTF-8 UTF-8 en_US.UTF-8 UTF-8 zh_CN.GB18030 GB18030

2.生成locale(自动保存在/usr/lib/locale/中) locale-gen

3.修改locale vi /etc/environment 把 LANG=“zh_CN.UTF-8” 改成 LANG=“zh_CN.GB18030”

more /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11: /usr/games" #LANG=“zh_CN.UTF-8” LANG=“zh_CN.GB18030” LANGUAGE=“zh_CN:zh:en_US:en”

……

阅读全文