Linux内核参数设置sysctl命令详解

sysctl是一个允许您改变正在运行中的Linux系统的接口. 它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能. 用sysctl可以读取设置超过五百个系统变量. 基于这点, sysctl提供两个功能:读取和修改系统设置.

常用参数

-w  临时改变某个指定参数的值,如sysctl -w net.ipv4.ip_forward=1
-a  显示所有的系统参数
-p  从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

以下是实例

$ sysctl -a     #查看所有可读变量

$ sysctl net.ipv4.ip_forward    #查看某个变量
net.ipv4.ip_forward = 1

$ sysctl -n net.ipv4.ip_forward    #获取某个变量的值
1

$ sysctl -w kernel.yama.ptrace_scope=0   #临时修改某个变量的当前值,即虚拟文件系统/proc下的值,重启失效
kernel.yama.ptrace_scope = 0

$ echo 1 > /proc/sys/net/ipv4/ip_forward  #临时修改某个变量的当前值,效果同上

#使用sed命令永久修改某值
#把kernel.yama.ptrace_scope开头的行修改为后面的值,注意第2个/后面有个c表示change
$ sudo sed -i "/^kernel.yama.ptrace_scope/ckernel.yama.ptrace_scope = 0" /etc/sysctl.d/10-ptrace.conf
$ sysctl -p    #将sysctl.conf文件中的修改读取到系统中,即虚拟文件系统/proc下的值

(more…)

Read More

配置Xmanager连接Ubuntu 14.04远程桌面

Xmanager默认使用XDMCP协议连接远程桌面, 因此这里我们需要启用XDMCP协议.

$ sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
[SeatDefaults]
user-session=mate     #将其改为mate, 并添加如下几行
allow-guest=false
greeter-show-manual-login=true
greeter-hide-users=true

[XDMCPServer]
enabled=true


$ sudo service lightdm restart

$ netstat -anp  |grep :177     #确保UDP的177端口启动成功(XDMCP使用UDP 177端口)
udp        0      0 0.0.0.0:177             0.0.0.0:*                           -               
udp6       0      0 :::177                  :::* 

接下来是安装mate桌面

$ sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
$ sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
$ sudo apt-get update

mate官方WIKI针对Ubuntu 14.04给出了三种安装方式

$ sudo apt-get install mate-desktop-environment-core   #安装一个最小化的mate桌面
$ sudo apt-get install mate-desktop-environment        #安装一个完整的mate桌面
$ sudo apt-get install mate-desktop-environment-extras #安装一个完整的mate桌面(包含推荐的软件包)

本文这里使用了第一种方式安装.

然后就可以在Xmanager里输入IP地址, 方法选择”XDMCP Query”即可连接.

Read More

Linux系统安装obfuscated-openssh

1,安装obfuscated-openssh server

obfuscated-openssh可以代替系统的OpenSSH服务,如果在安装过程中不指定–prefix选项,它将替换系统openssh-server的二进制程序和配置文件. 本文指定了安装目录,并不会与系统自带的openssh服务冲突.

yum install zlib openssl                     #适用Redhat/CentOS系统
sudo apt-get install zlib1g-dev libssl-dev   #适用Ubuntu系统

wget -O ofcssh.tar.gz https://github.com/brl/obfuscated-openssh/tarball/master

tar zxvf ofcssh.tar.gz

cd brl-obfuscated-openssh-ca93a2c/

./configure --prefix=/usr/local/obfus  #如果遇到错误请参考下文处理方法
make
make install

sed -i "s/Port /#Port /g" /usr/local/obfus/etc/sshd_config      #22端口被正常的SSH服务使用,这里不需要
sed -i "s/UsePAM /#UsePAM /g" /usr/local/obfus/etc/sshd_config  #obfuscated-openssh不支持UsePAM选项
echo "ObfuscatedPort 32" >> /usr/local/obfus/etc/sshd_config              #指定监听端口
echo "ObfuscateKeyword fuckthegfw" >>  /usr/local/obfus/etc/sshd_config   #指定混淆密钥

运行:
/usr/local/obfus/sbin/sshd -f /usr/local/obfus/etc/sshd_config &


设置开机自启(写入/etc/rc.local)
echo 'nohup /usr/local/obfus/sbin/sshd -f /usr/local/obfus/etc/sshd_config >> /var/log/obfus.log 2>&1 &' >> /etc/rc.local

(more…)

Read More

删除文件以后,XFS分区的可用容量并未增加?

今天接到一同事报告,在分区里删除了一些大体积文件以后,使用df -hT看到该分区的Avail容量并未增加。我的第一反应就是肯定是XFS文件搞的鬼!经过谷歌以后证明了确实是XFS文件系统的问题。

XFS is designed to support highly parallel operation and massive dynamically expanding file system sizes. Both are supported by dynamic allocation of inodes.

XFS被设计为支持高度并行运算和海量动态扩展文件系统大小。两者都是由inode的动态分配支持。

XFS dynamically allocates space for inodes as they are created, this is different from many other filesystems where inode space is statically allocated at mkfs time. While inode space is dynamically allocated, it is never freed – up until now that is.

When ikeep is specified, XFS does not delete empty inode clusters and keeps them around on disk. When noikeep is specified, empty inode clusters are returned to the free space pool.

(more…)

Read More

为Linux发行版安装开源字体软件

除了Ubuntu以外,大多数Linux发行版在字体渲染方面一直都不好,尤其是安装了中文字体以后,看起来模糊、发虚,简直无法直视。本文介绍了在Arch/Fedora/OpenSUSE/Debian系统下安装Infinality开源字体软件的方法。

1,为Arch Linux安装Infinality

$ sudo vim  /etc/pacman.conf:

[infinality-bundle]
Server = http://bohoomil.com/repo/$arch

[infinality-bundle-multilib]
Server = http://bohoomil.com/repo/multilib/$arch

[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts

$ sudo pacman -Syu

$ sudo pacman -S infinality-bundle infinality-bundle-multilib ibfonts-meta-extended  #64位系统
$ sudo pacman -S infinality-bundle ibfonts-meta-extended     #32位系统

然后重启系统即可。 (more…)

Read More

Gnome3修改字体

获得系统已安装的字体列表

$ fc-list
$ fc-list :lang=zh
$ fc-list :lang=zh |  cut -d : -f 2 | cut -d, -f1 | sort | uniq -c

修改Gnome Shell字体

$ sudo vim /usr/share/gnome-shell/theme/gnome-shell.css  #修改如下内容

……
font-family: cantarell, sans-serif;
……

经过以上修改,重启后就会发现Gnome Shell字体变了。但是,(欢迎)登陆界面,字体仍未被修改,原因未知

修改系统字体

$ sudo apt-get install gnome-tweak-tool   #适用ubuntu/debian

$ yum install gnome-tweak-tool      #适用fedora

然后在应用程序列表里找到“优化工具”即可设置。

Read More

Linux系统下查看网卡列表

Linux系统下如果没有安装udev的话,网卡不会以eth0的方式存在于系统里,系统会直接使用BIOS传递过来的设备名作为网卡名称,例如em1之类的。那么如何查看所有网卡的名称呢?

$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
 bond0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
   em2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
   em4:    3587      18    0    0    0     0          0         2    11100      65    0    0    0     0       0          0
  p3p1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo:    3934      64    0    0    0     0          0         0     3934      64    0    0    0     0       0          0
   em1:   15196     117    0   18    0     0          0        19    15865     107    0    0    0     0       0          0
  p3p2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
   em3:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 
$ netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
bond0      1500 0         0      0      0 0             0      0      0      0 BMmU
em1        1500 0       193      0     33 0           144      0      0      0 BMRU
em2        1500 0         0      0      0 0             0      0      0      0 BMU
em3        1500 0         0      0      0 0             0      0      0      0 BMU
em4        1500 0        18      0      0 0            69      0      0      0 BMRU
lo        65536 0       119      0      0 0           119      0      0      0 LRU
p3p1       1500 0         0      0      0 0             0      0      0      0 BMsU
p3p2       1500 0         0      0      0 0             0      0      0      0 BMsU
Read More