ssh登录时间长的解决方法

ssh远程登录到VM虚拟机中登录时间太长,要等待很久才会出现输入密码的提示,今天终于有时间google了一下,纪录一下一般的解决方法:

1.使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果DNS中没有这个IP的域名解析,则会等到DNS查询超时才会进行下一步,消耗很长时间。修改方式:

vim /etc/ssh/sshd_config

# 增加一行记录:
UseDNS no

默认情况下会有一行被注释掉的记录#UseDNS yes,虽然这条记录被注释掉了,但ssh缺省情况下UseDNS的值是yes,所以要显式的指定该值为no。

2. 这种情况在本地主机或远程主机启动图形的情况下比较明显,该参数似乎是在做图形方面的认证,具体功能还不清楚,但修改以后可以明显提高ssh远程登录速度。

vim /etc/ssh/sshd_config

# 修改GSSAPIAuthentication参数为 no,默认是yes
GSSAPIAuthentication no

# 重新启动ssh服务
service sshd restart

ssh –vvv root@192.168.8.1

-vvv的参数可以查看ssh登录的过程,看看当前进行到了哪一步。

解决WIN7不能用路由器上网的方法

解决WIN7不能用路由器上网而XP能的方法win7路由器无法上网

解决方法:从XP系统里进入192.168.1.1路由器-LAN口设置-IP地址:改为:192.168.2.1然后重起路由。换回WIN7,顺利上网!
现象:系统任务栏右下角的网络连接图标带有一个黄色的感叹号。具体为——IPV4 无Internet访问权限,IPV6无网络访问权限。能从路由获取内网地址,也能获取IPV6地址;可以ping通内网IP地址,也可以Ping通路由网关。这些现象在XP下正常。
关键问题就在这里:Windows7睿智的发现了它——是个冒牌的交换机,而是更高级的路由!结果,我这台装了Windows 7的电脑毫不犹豫的选择了楼道小区宽带的路由器,无法上网的问题随之便发生了!
买一小米手机后就一直想买个无线路由器来。所以年前买了迅捷 FW300R无线路由和一个TP-Link TL-WN821N的无线网卡。
线路都正确连上后,在WIN7先是用网线连的就是进不去路由,然后我就换到XP系统,居然能进去,设置好上网帐号和密码,设置好无线密码,小米手机上无线很Happy啊。后来我也没太注意WIN7不能用路由有线上网,因为我用USB无线网卡能上,而且我一直以为网线有问题,所以我昨天特意自己从新做了一下网线的水晶头而且测试正常,拿回来后WIN7还是无法上网。但是在苹果系统和Linux系统和XP系统都能上,就是WIN7上不了。试过升级路由还是无效,所以在网上找了很多方法,最后还是这个方法有效果!

记录一下putty的pscp的用法

以前一直用SecureCRT汉化版,前段时间爆出的putty中文后门事件才开始关注putty和使用,只有一个文件太Happy了,不过没有SecureCRT这么多功能。不过我喜欢简单。但是用SSH还不知道怎么传文件上去,所以用了一下pscp还不错哦。
记录一下putty的pscp的用法,不然老忘记。哎,多用几次就能记住了吧!

pscp用法

scp命令例如:pscp c:\testtest.tar root@192.168.153.193:/home/guowei/ 回车后输入密码就可以了。

上传

PSCP.EXE -p -r -v -pw xxxxxxx e:\soft\mysql.sh root@192.168.153.193:/root/tmp/test/

下载

PSCP.EXE -pw xxxxxxx root@192.168.153.193:/root/tmp/test/mysql.sh c:\soft\temp\

具体用法:

PSCP和SCP功能相同,在windows下使用,只有一个文件,建议将pscp.exe放到C:\WINDOWS\system32下面,这样就可以在任何地方调用了。语法与scp相同,下面是几个有用的options。
-p 拷贝文件的时候保留源文件建立的时间。
-q 执行文件拷贝时,不显示任何提示消息。
-r 拷贝整个目录
-v 拷贝文件时,显示提示信息。
Usage:
pscp [options] [user@]host:source target
pscp [options] source

[/source]

[user@]host
pscp [options] -ls user@host:filespec

用法:
pscp [选项] [用户名@]主机:源文件 目标文件
pscp [选项] 源文件 [源文件……] [用户名@]主机
pscp [选项] -ls 用户名@主机:文件空间?
Options:
选项:
-p preserve file attributes 保护文件属性
-q quiet, don’t show statistics 安静,不显示统计
-r copy directories recursively 复制子文件夹
-V print version information and exit 显示信息
-v show verbose messages
-load sessname Load settings from saved session
-load 加载,加载保存节的设定
-P port connect to specified port
-P 端口,连接到指定空间端口
-l user connect with specified username
-l 用户,用指定的用户连接空间
-pw passw login with specified password
-pw 密码,用指定的密码登录空间
-1/-2 强迫 ssh 使用的版本
-4 -6 force use of IPv4 or IPv6
-C 打开压缩
-i key 钥匙,证明用的钥匙文件
-batch 关闭交互能力,也许
-unsafe 不安全,允许伺服端取代字符 (危险的)

————————————————————————————————————————————
Linux SSH远程文件/目录传输命令scp

scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz

上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。

2、获取远程服务器上的目录

scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/

上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4/ 表示远程服务器上的目录,最后面的/home/lnmp0.4/表示保存在本地上的路径。

3、将本地文件上传到服务器上

scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz

上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示保存在远程服务器上目录和文件名。

4、将本地目录上传到服务器上

scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/

上 端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);/home/lnmp0.4/表示准备要上传的目录,root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4/ 表示保存在远程服务器上的目录位置。

5、可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

 
SCP 续传

使用scp不能出错,一旦中断就只能重新开始,但可以利用rsync进行断点续传。

可以在~/.bashrc中加入一个alias:

alias rscp='rsync -v -P -e ssh'

然后source一下,让它启用。

$source ~/.bashrc

Nginx无缝升级

网站升级,如何升级 nginx 最新稳定版本?并且不停网站升级 nginx?

纪录一下从 nginx1.0.11 升级到 1.0.12,刚才在 VM 里测试升级到了 1.0.12 最新稳定版本。

具体做法如下:
一、首先查看当前版本:并下载目前最新 nginx 稳定版本:

[root@localhost ~]# nginx -v
nginx: nginx version: nginx/1.0.11

二、下载完毕开始解压编译:

编译环境:

yum install gcc openssl-devel pcre-devel zlib-devel

备份原来的 nginx 网站:

cp /usr/share/nginx /www/bakcup/nginx -r

即,备份目录可以自己指定。

tar zxvf nginx-1.0.12.tar.gz
cd nginx-1.0.12
./configure --prefix=/usr/share --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module
make

千万不要 make install

三、编译完后,我们开始操作升级。

mv /usr/sbin/nginx /usr/sbin/nginx0214
cp ./objs/nginx /usr/sbin/nginx
[root@localhost ~]# nginx -V
nginx: nginx version: nginx/1.0.12

重新加载 nginx

/usr/sbin/nginx -s reload

大功告成!!!

Nginx和PHP-FPM的启动/重启脚本

Nginx
这段时间在捣鼓服务器,Nginx和PHP都是源码编译安装的,每次都得打上长长的路径才能启动,或者在/etc/rc.local里写,启动的时候又看不到确定提示,所以不支持类似以前的nginx (start|restart|stop|reload)了。所以在网上找了这个脚本并且测试正常,在这里记录一下。博客有2个月没更新了,这算是2012年第一篇吧,哈哈,情人节快乐

一、Nginx启动脚本/etc/init.d/nginx

#!/bin/bash
#
#Startup script for Nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

编辑好后保存,执行以下命令

chmod +x /etc/init.d/nginx

现在把Nginx加入chkconfig,并设置开机启动。

chkconfig --add nginx
chkconfig nginx on

# 检查一下

chkconfig --list nginx

nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off

启动、停止、查看状态的命令如下:

service nginx start
service nginx stop
service nginx restart
service nginx reload

/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
/etc/init.d/nginx reload

systemctl 脚本

cat /lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/data/app/nginx/sbin/nginx -t -c /data/app/nginx/conf/nginx.conf
ExecStart=/data/app/nginx/sbin/nginx -c /data/app/nginx/conf/nginx.conf
ExecReload=/data/app/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true


[Install]
WantedBy=multi-user.target



systemctl enable nginx.service


现在可以使用下面的指令来控制nginx啦
systemctl start nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl stop nginx.service

#日志
$ journalctl -f -u nginx.service

#下面这几个路径是你的nginx安装的目录,务必不要弄错。 
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf

二、PHP-FPM启动脚本/etc/init.d/php-fpm

从PHP 5.3.3开始就已经集成了PHP-FPM所以php-fpm在PHP 5.3.2以后的版本不支持以前的php-fpm (start|restart|stop|reload) 了,不用专门再打补丁了,只需要解开源码直接configure,关于php-fpm的编译参数有

--enable-fpm --with-fpm-user=www --with-fpm-group=www --with-libevent-dir=libevent位置

进入到php源代码目录下,然后:

cp -f (php -5.3.x-source-dir)/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

继续阅读“Nginx和PHP-FPM的启动/重启脚本”