分类目录归档:系统管理

系统管理员

ssh自动断开的问题

高版本的Linux自带的OpenSSH在使用的时候,几分钟不操作的话就会自动断开连接,这是出于安全的考虑,但是对于需要长时间使用的用户来说很麻烦,每次都要重新连接。解决方法如下:

将/etc/ssh/sshd_config中的“ClientAliveInterval”设置取消注释,并把0改为一个较小的数值即可。具体说明参看下面的解释:

OpenSSH ClientAliveInterval

Using an OpenSSH server’s ClientAliveInterval, it is possible for the ssh server to send periodic “keep alive” messages to the ssh client, keeping the connection open indefinitely. This is useful when a firewall or other packet filtering device drops idle connections after a certain period of time. Note that this is different from the KeepAlive directive in ssh_config.

From the sshd_config manpage:

     ClientAliveInterval
             Sets a timeout interval in seconds after which if no data has
             been received from the client, sshd will send a message through
             the encrypted channel to request a response from the client.  The
             default is 0, indicating that these messages will not be sent to
             the client.  This option applies to protocol version 2 only.

Example (send “keep alive” messages every 5 minutes) on Red Hat Linux:

1. Add ClientAliveInterval 300 to /etc/ssh/sshd_config

2. Reload the sshd server configuration with /sbin/service sshd reload

Note: you may want to configure the ClientAliveCountMax value in sshd_config to set the number of times that “keep alive” messages are sent. If ClientAliveCountMax number of “keep alive” messages are not acknowledged by the ssh client, the connection is terminated by the ssh server. The default value of 3 should be sufficient for most users.

vi,替换

vi/vim 中可以使用 :s 命令来替换字符串§以前只会使用一种格式来全文替换,今天发现该命令有很多种写法,记录几种在此,方便以后查询§

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
继续阅读

使用yum 更新as4 update8,使用的是163的源

万网太恶心,装centos还要收费,默认的是as4.8,NND

只能使用以下的山寨方式更新。笔记之

as4 update8       
yum 安装
wget http://yum.baseurl.org/download/2.4/yum-2.4.3-1.src.rpm
rpmbuild –rebuild yum*.src.rpm
cd /usr/src/redhat/RPMS/noarch
rpm -ivh yum-2.4.3-1.noarch.rpm
vi /etc/yum.conf
加入以下内容:

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
#[base]
#name=Red Hat Linux $releasever – $basearch – Base
#baseurl=http://mirror.dulug.duke.edu/pub/yum-repository/redhat/$releasever/$basearch/
[base]
name=Red Hat Linux $releasever – $basearch – Base
baseurl=http://mirrors.163.com/centos/4.8/os/i386/

以上使用163的源

保存后
yum update
即可

再[转]/proc/sys/net/ipv4/下各文件的作用

[转]/proc/sys/net/ipv4/下各文件的作用

/proc/sys/net/ipv4/icmp_timeexceed_rate

这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。

/proc/sys/net/ipv4/igmp_max_memberships

主机上最多有多少个igmp (多播)套接字进行监听。

/proc/sys/net/ipv4/inet_peer_gc_maxtime

求 助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies.

/proc/sys/net/ipv4/inet_peer_gc_mintime

每一遍碎片收集之间的最小时间间隔。当内存压力比较大的时候,调整这个间隔很有效。以jiffies计。

/proc/sys/net/ipv4/inet_peer_maxttl

entries的最大生存期。在pool没有内存压力的情况下(比如,pool中entries的数量很少的时候),未使用的entries经过一段时间就会过期。以jiffies计。

/proc/sys/net/ipv4/inet_peer_minttl

entries的最小生存期。应该不小于汇聚端分片的生存期。当pool的大小不大于inet_peer_threshold时,这个最小生存期必须予以保证。以jiffies计。

/proc/sys/net/ipv4/inet_peer_threshold

The approximate size of the INET peer storage. Starting from this threshold entries will be thrown aggressively. This threshold also determines entries’ time-to-live and time intervals between garbage collection passes. More entries, less time-to-live, less GC interval.

/proc/sys/net/ipv4/ip_autoconfig

这个文件里面写着一个数字,表示主机是否通过RARP、BOOTP、DHCP或者其它机制取得其IP配置。否则就是0。

/proc/sys/net/ipv4/ip_default_ttl

数据包的生存期。设置为64是安全的。如果你的网络规模巨大就提高这个值。不要因为好玩而这么做——那样会产生有害的路由环路。实际上,在很多情况下你要考虑能否减小这个值。

/proc/sys/net/ipv4/ip_dynaddr/proc/sys/net/ipv4/icmp_destunreach_rate

如果你有一个动态地址的自动拨号接口,就得设置它。当你的自动拨号接口激活的时候,本地所有没有收到答复的TCP套接字会重新绑定到正确的地址上。这可以解决引发拨号的套接字本身无法工作,重试一次却可以的问题。

/proc/sys/net/ipv4/ip_forward

内核是否转发数据包。缺省禁止。

/proc/sys/net/ipv4/ip_local_port_range

用于向外连接的端口范围。缺省情况下其实很小:1024到4999。

/proc/sys/net/ipv4/ip_no_pmtu_disc

如果你想禁止“沿途MTU发现”就设置它。“沿途MTU发现”是一种技术,可以在传输路径上检测出最大可能的MTU值。参见Cookbook一章中关于“沿途MTU发现”的内容。

/proc/sys/net/ipv4/ipfrag_high_thresh

用 于IP分片汇聚的最大内存用量。分配了这么多字节的内存后,一旦用尽,分片处理程序就会丢弃分片。When ipfrag_high_thresh bytes of memory is allocated for this purpose, the fragment handler will toss packets until ipfrag_low_thresh is reached.

/proc/sys/net/ipv4/ip_nonlocal_bind

如果你希望你的应用程序能够绑定到不属于本地网卡的地址上时,设置这个选项。如果你的机器没有专线连接(甚至是动态连接)时非常有用,即使你的连接断开,你的服务也可以启动并绑定在一个指定的地址上。

/proc/sys/net/ipv4/ipfrag_low_thresh

用于IP分片汇聚的最小内存用量。

/proc/sys/net/ipv4/ipfrag_time

IP分片在内存中的保留时间(秒数)。

/proc/sys/net/ipv4/tcp_abort_on_overflow

一个布尔类型的标志,控制着当有很多的连接请求时内核的行为。启用的话,如果服务超载,内核将主动地发送RST包。

/proc/sys/net/ipv4/tcp_fin_timeout

如 果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。参见tcp_max_orphans。

/proc/sys/net/ipv4/tcp_keepalive_time

当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。

/proc/sys/net/ipv4/tcp_keepalive_intvl

当探测没有确认时,重新发送探测的频度。缺省是75秒。

/proc/sys/net/ipv4/tcp_keepalive_probes

在认定连接失效之前,发送多少个TCP的keepalive探测包。缺省值是9。这个值乘以tcp_keepalive_intvl之后决定了,一个连接发送了keepalive之后可以有多少时间没有回应。

/proc/sys/net/ipv4/tcp_max_orphans

系 统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。This limit exists only to prevent simple DoS attacks, you _must_ not rely on this or lower the limit artificially, but rather increase it (probably, after increasing installed memory), if network conditions require more than default value, and tune network services to linger and kill such states more aggressively. 让我再次提醒你:每个孤儿套接字最多能够吃掉你64K不可交换的内存。

/proc/sys/net/ipv4/tcp_orphan_retries

本端试图关闭TCP连接之前重试多少次。缺省值是7,相当于50秒~16分钟(取决于RTO)。如果你的机器是一个重载的WEB服务器,你应该考虑减低这个值,因为这样的套接字会消耗很多重要的资源。参见tcp_max_orphans。

/proc/sys/net/ipv4/tcp_max_syn_backlog

记 录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。如果服务器不堪重负,试 试提高这个值。注意!如果你设置这个值大于1024,最好同时调整include/net/tcp.h中的TCP_SYNQ_HSIZE,以保证 TCP_SYNQ_HSIZE*16 ≤tcp_max_syn_backlo,然后重新编译内核。

/proc/sys/net/ipv4/tcp_max_tw_buckets

系 统同时保持timewait套接字的最大数量。如果超过这个数字,time-wait套接字将立刻被清除并打印警告信息。这个限制仅仅是为了防止简单的 DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,如果网络实际需要大于缺省值,更应该增加这个值(如果增加了内存之后)。

/proc/sys/net/ipv4/tcp_retrans_collapse

为兼容某些糟糕的打印机设置的“将错就错”选项。再次发送时,把数据包增大一些,来避免某些TCP协议栈的BUG。

/proc/sys/net/ipv4/tcp_retries1

在认定出错并向网络层提交错误报告之前,重试多少次。缺省设置为RFC规定的最小值:3,相当于3秒~8分钟(取决于RIO)。

/proc/sys/net/ipv4/tcp_retries2

在杀死一个活动的TCP连接之前重试多少次。RFC 1122规定这个限制应该长于100秒。这个值太小了。缺省值是15,相当于13~30分钟(取决于RIO)。

/proc/sys/net/ipv4/tcp_rfc1337

这个开关可以启动对于在RFC1337中描述的“tcp的time-wait暗杀危机”问题的修复。启用后,内核将丢弃那些发往time-wait状态TCP套接字的RST包。却省为0。

/proc/sys/net/ipv4/tcp_sack

特别针对丢失的数据包使用选择性ACK,这样有助于快速恢复。

/proc/sys/net/ipv4/tcp_stdurg

使用TCP紧急指针的主机需求解释。因为绝大多数主机采用BSD解释,所以如果你在Linux上打开它,可能会影响它与其它机器的正常通讯。缺省是FALSE。

/proc/sys/net/ipv4/tcp_syn_retries

在内核放弃建立连接之前发送SYN包的数量。

/proc/sys/net/ipv4/tcp_synack_retries

为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。

/proc/sys/net/ipv4/tcp_timestamps

时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。

/proc/sys/net/ipv4/tcp_tw_recycle

能够更快地回收TIME-WAIT套接字。缺省值是1。除非有技术专家的建议和要求,否则不应修改。

/proc/sys/net/ipv4/tcp_window_scaling

一般来说TCP/IP允许窗口尺寸达到65535字节。对于速度确实很高的网络而言这个值可能还是太小。这个选项允许设置上G字节的窗口大小,有利于在带宽*延迟很大的环境中使用。

一旦内核认为它无法发包,就会丢弃这个包,并向发包的主机发送ICMP通知。

/proc/sys/net/ipv4/icmp_echo_ignore_all

根本不要响应echo包。请不要设置为缺省,它可能在你正被利用成为DoS攻击的跳板时可能有用。

/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts [Useful]

如果你ping子网的子网地址,所有的机器都应该予以回应。这可能成为非常好用的拒绝服务攻击工具。设置为1来忽略这些子网广播消息。

/proc/sys/net/ipv4/icmp_echoreply_rate

设置了向任意主机回应echo请求的比率。

/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

设置它之后,可以忽略由网络中的那些声称回应地址是广播地址的主机生成的ICMP错误。

/proc/sys/net/ipv4/icmp_paramprob_rate

一个相对不很明确的ICMP消息,用来回应IP头或TCP头损坏的异常数据包。你可以通过这个文件控制消息的发送比率。

linux系统管理中的查看内存插槽数、最大容量和频率

Linux 查看内存插槽数、最大容量和频率

下面是查看内存的命令供大家参考
 很经典的一些命令,下面需要好好研究研究

1.Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大,已使用内存多大 

  1. dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range  
  2. Size:2048MB  
  3. Size:2048MB  
  4. Size:NoModuleInstalled  
  5. Size:NoModuleInstalled  
  6. Size:NoModuleInstalled  
  7. Size:NoModuleInstalled  
  8. Size:NoModuleInstalled  
  9. Size:NoModuleInstalled  

 2.Linux 查看内存支持的最大内存容量 

  1. dmidecode|grep -P 'Maximum\s+Capacity'  
  2. MaximumCapacity:64GB  

 3.Linux 查看内存的频率 

  1. dmidecode|grep -A16 "Memory Device"  
  2. dmidecode|grep -A16 "Memory Device"|grep 'Speed'  
  3. Speed:667MHz(1.5ns)  
  4. Speed:667MHz(1.5ns)  
  5. Speed:667MHz(1.5ns)  
  6. Speed:667MHz(1.5ns)  
  7. Speed:667MHz(1.5ns)  
  8. Speed:667MHz(1.5ns)  
  9. Speed:667MHz(1.5ns)  
  10. Speed:667MHz(1.5ns)  

rpc.statd,portmap等服务

tcp        0      0 0.0.0.0:867                 0.0.0.0:*                   LISTEN      2805/rpc.statd    可以停(如果不用nfs)
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2786/portmap      可以停(如果不用nfs,portmap
就如同剛剛提的到,我們的 NFS 其實可以被視為一個 RPC 程式,而要啟動任何一個 RPC 程式之前,我們都需要做好 port 的對應 (mapping) 的工作才行,這個工作其實就是『 portmap 』這個服務所負責的!也就是說, 在啟動任何一個 RPC server 之前,我們都需要啟動 portmap 才行!)
tcp        0      0 0.0.0.0:2102                0.0.0.0:*                   LISTEN      29924/mysqld
tcp        0      0 222.222.222.222:111            222.222.222.221:58557         ESTABLISHED 2786/portmap
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      3029/vsftpd
tcp        0      0 0.0.0.0:631                 0.0.0.0:*                   LISTEN      23339/cupsd     可以停(打印服务,除了cups外还有一个lpr也是打印服务)
tcp        0      0 0.0.0.0:2583                0.0.0.0:*                   LISTEN      3177/perl    mon监控(可能是在监控服务器的状态)
tcp        0      0 :::22                       :::*                        LISTEN      3004/sshd
tcp        0      0 ::ffff:222.222.222.222      ::ffff:222.222.222.222:50122   ESTABLISHED 20767/0

linux下的一些服务

sort -u -k 7n port.txt,netstat -anpt >> port.txt

[root@adp ~]# sort -u -k 7n port.txt
tcp        0      0 222.222.222.222:80             60.21.136.42:52059          SYN_RECV    –
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2786/portmap
tcp        0      0 0.0.0.0:867                 0.0.0.0:*                   LISTEN      2805/rpc.statd
tcp        0      0 :::22                       :::*                        LISTEN      3004/sshd
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      3029/vsftpd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      3048/sendmail: acce
tcp        0      0 0.0.0.0:2583                0.0.0.0:*                   LISTEN      3177/perl
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      16959/adpmain
tcp        0      0 ::ffff:222.73.23.24:22      ::ffff:119.57.32.69:50122   ESTABLISHED 20767/0
tcp        0      0 0.0.0.0:631                 0.0.0.0:*                   LISTEN      23339/cupsd
tcp        0      0 0.0.0.0:2102                0.0.0.0:*                   LISTEN      29924/mysqld

今天搞网卡千兆,花费一天时间,不总结对不起自己,以下是ethtool的一些总结

ethtool -s speed 1000 duplex full autoneg off  ;强制千兆双工
ethtool eth0                                   ;查看eth0状态
ethtool -s eth0 advertise 0x020         ;设置为全双工1000M
可以设置的advertise参数:
advertise的值:
0x001    10 Half
0x002    10 Full
0x004    100 Half
0x008    100 Full
0x010    1000 Half(not supported by IEEE standards)
0x020    1000 Full
0x8000   2500 Full(not supported by IEEE standards)
0x800    10000 Full
0x03F    Auto
# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d

                [ speed 10|100|1000|2500|10000 ]
                [ duplex half|full ]
                [ port tp|aui|bnc|mii|fibre ]
                [ autoneg on|off ]
                [ advertise %%x ]
                [ phyad %%d ]
                [ xcvr internal|external ]
                [ wol p|u|m|b|a|g|s|d… ]
                [ sopass %%x:%%x:%%x:%%x:%%x:%%x ]
                [ msglvl %%d ]

# ethtool –help
ethtool version 6
Usage:
ethtool DEVNAME Display standard information about device
         ethtool -s|–change DEVNAME    Change generic options
                [ speed 10|100|1000|2500|10000 ]
                [ duplex half|full ]
                [ port tp|aui|bnc|mii|fibre ]
                [ autoneg on|off ]
                [ advertise %%x ]
                [ phyad %%d ]
                [ xcvr internal|external ]
                [ wol p|u|m|b|a|g|s|d… ]
                [ sopass %%x:%%x:%%x:%%x:%%x:%%x ]
                [ msglvl %%d ]
         ethtool -a|–show-pause DEVNAME        Show pause options
         ethtool -A|–pause DEVNAME     Set pause options
                [ autoneg on|off ]
                [ rx on|off ]
                [ tx on|off ]
         ethtool -c|–show-coalesce DEVNAME     Show coalesce options
         ethtool -C|–coalesce DEVNAME  Set coalesce options
                [adaptive-rx on|off]
                [adaptive-tx on|off]
                [rx-usecs N]
                [rx-frames N]
                [rx-usecs-irq N]
                [rx-frames-irq N]
                [tx-usecs N]
                [tx-frames N]
                [tx-usecs-irq N]
                [tx-frames-irq N]
                [stats-block-usecs N]
                [pkt-rate-low N]
                [rx-usecs-low N]
                [rx-frames-low N]
                [tx-usecs-low N]
                [tx-frames-low N]
                [pkt-rate-high N]
                [rx-usecs-high N]
                [rx-frames-high N]
                [tx-usecs-high N]
                [tx-frames-high N]
                [sample-interval N]
         ethtool -g|–show-ring DEVNAME Query RX/TX ring parameters
         ethtool -G|–set-ring DEVNAME  Set RX/TX ring parameters
                [ rx N ]
                [ rx-mini N ]
                [ rx-jumbo N ]
                [ tx N ]
         ethtool -k|–show-offload DEVNAME      Get protocol offload information
         ethtool -K|–offload DEVNAME   Set protocol offload
                [ rx on|off ]
                [ tx on|off ]
                [ sg on|off ]
                [ tso on|off ]
                [ ufo on|off ]
                [ gso on|off ]
                [ gro on|off ]
         ethtool -i|–driver DEVNAME    Show driver information
         ethtool -d|–register-dump DEVNAME     Do a register dump
                [ raw on|off ]
                [ file FILENAME ]
         ethtool -e|–eeprom-dump DEVNAME       Do a EEPROM dump
                [ raw on|off ]
                [ offset N ]
                [ length N ]
         ethtool -E|–change-eeprom DEVNAME     Change bytes in device EEPROM
                [ magic N ]
                [ offset N ]
                [ value N ]
         ethtool -r|–negotiate DEVNAME Restart N-WAY negotation
         ethtool -p|–identify DEVNAME  Show visible port identification (e.g. blinking)
               [ TIME-IN-SECONDS ]
         ethtool -t|–test DEVNAME      Execute adapter self test
               [ online | offline ]
         ethtool -S|–statistics DEVNAME        Show adapter statistics
         ethtool -h|–help