Centos DNS 重启失效的解决

Standard

在KT的毒妇配置的时候,通过yum安装了桌面,默认安装了Gnome,在没重启前还一切正常,重启以后接着配置的时候,发现没法网络访问了,ping测试一下,host unkown;基本可以确定是DNS的问题。检查/etc/resolv.conf文件,发现# Generated by NetworkManager ,这个应该是在安装桌面的时候安装了gnome的网络管理造成的,由它接管了网络设置,但是显然这不是我所需要的,直接修改/etc/resolv.conf,在重启服务器后,dns又无效了。

解决方案一:

修改/etc/resolv.conf,添加
nameserver 8.8.8.8
nameserver 8.8.4.4
然后停用NetworkManager,service NetworkManager stop, 检查还有没开机启动的可能,这样就可以继续使用我们定义的dns。

解决方案二(推荐):

对接口添加dns信息;编辑/etc/sysconfig/network-scripts/ifcfg-ethX,具体的X根据你的网卡确定,添加
DNS1=8.8.8.8
DNS2=8.8.4.4
保存后重启网络/etc/init.d/networking restart ,问题解决。

解决方案三(未测试,网友提供):

修改 /etc/resolv.conf 同时设置权限,永久写入自定义的DNS。按照方案一添加nameserver后,运行chattr +i /etc/resolv.conf , 该命令修改文件属性为只有 root 用户才能修改该文件。(去掉可将参数改为 “-i”)。然后执行service NetworkManager restart 。

 

vps数据备份之DropBox

Standard

你是不是也会有不折腾不舒服的日子,会不会觉得服务器在那里一直就运行着网站感觉没意思,会不会也会想着弄点什么,比如搭个VPN,或者弄个代理什么的,折腾固然是我们的最爱,但是一不小心,咱的数据可能会因为我们的一不小心而化为乌有,所谓有备无患,在文章Linux网站及数据库自动备份并FTP上传备份脚本 中介绍了如何利用脚本打包站点数据(不局限于站点)然后通过FTP上传到服务器,可是,免费的FTP空间咱觉得不安全(虽然咱的数据也没什么值得被人窃取的),收费的空间吧,浪费了,我只想说,曾经,有注册域名送10G的免费空间摆在我的面前,我没有好好珍惜,直到以后都不会再有,我才后悔莫及(Godaddy以前提供注册域名送空间服务,现在没有了)。

失去的咱是找不回来了,那是不是应该找点可以变相成功的呢?

今天的主角是DropBox,免费注册以后有2G空间,一般的数据够存了吧,我们就是要用它来同步咱的数据,有兴趣就继续看下去吧~~

首先当然要有DropBox的账户,点击链接去注册一个吧,不过伟大的天朝已经把DropBox屏蔽了,至于怎么去玩,请猛击这里找个解决方案吧,所以本文针对的是你的vps在国外的,vps在国内的童鞋就不要折腾了。

现在开始最激动人心的部分,安装DropBox到vps,连接自己的vps后,执行如下命令:

[code lang=”shell”]
#32位系统
cd ~ && wget -O dropbox.tar.gz "https://www.dropbox.com/download?plat=lnx.x86"

#64位系统
cd ~ && wget -O dropbox.tar.gz "https://www.dropbox.com/download?plat=lnx.x86_64"
[/code]

解压:

[code lang=”shell”]
#解压
tar -zxof dropbox.tar.gz
[/code]

运行DropBox:

[code lang=”shell”]
#运行DropBox
~/.dropbox-dist/dropboxd
[/code]

运行后,会出现一串URL地址,将这串URL地址复制出来,粘贴到浏览器中运行,登陆刚才的用户进行绑定机器(还没到墙外的童鞋抓紧了),浏览器会提示绑定成功,同时你的注册邮箱也会收到邮件,ssh客户端也会有提示。完成后继续。

设置备份:

[code lang=”shell”]
#切换目录
cd ~/Dropbox

#假设要备份我的/home/backup/目录,则执行
ln -s /home/backup
[/code]

网页登陆DropBox,稍等便可以看到数据同步了。

通过top命令可以发现,dropbox进程还是占用了差不多100M的内存,而这个备份的需求并不需要它一直运行,所以我们借助脚本和定时任务来完成接下来的工作,点击链接下载脚本放到~/.dropbox/目录下,修改文件权限为0755 。

建立计划任务:

[code lang=”shell”]
#建立计划任务
crontab -e

#任务
0 2 * * * sh /root/.dropbox/dropbox.sh restart
0 5 * * * sh /root/.dropbox/dropbox.sh stop
[/code]

保存后,DropBox就会在每天2点到5点运行。

 

squid安装及穿越功夫网小技巧

Standard

异常纠结于穿越功夫网的方式,在PC端,现在使用goagent,使用起来还是挺方便的,但是手机上就不那么方便了,为了可以接受官方系统更新,我的手机上次重新上锁以后就没再解开,更不要说root了,为此出墙是在是不方便,以前是在手机上用gae,现在使不上劲啊,我总不能每次都是用内置浏览器去出墙吧~(此为背景)

有人会说,那用vpn不就得了,确实,vpn数据加密,确实很有用处,但是连上vpn,所有数据都走vpn通道了,国内访问就慢了好多,这也是为什么我一直在找寻折中的解决方案。这次我决定搭代理服务器来帮助我出墙。

linux下的代理服务器解决方案其实挺多,网上很多人介绍的无非就是Apache、squid、kangle等。这次我选择的是squid,我只需要它提供的功能之一:普通代理即可。

安装过程(基于CentOS 6.2):
[code lang=”shell”]
yum install squid
[/code]
 

修改配置文件:
[code lang=”shell”]
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
vi /etc/squid/squid.conf
[/code]
 

修改”http_access deny all”  –>  “http_access allow all”

其他可以先不动。

检查配置参数是否有误:

[code lang=”shell”]
squid -k parse
[/code]
 

初始化缓存:
[code lang=”shell”]
squid -z
[/code]
 

启动服务:
[code lang=”shell”]
service squid start
[/code]

 

到这里可以连接代理服务器测试一下了。

下面要说的是出墙,这个代理能用了,但是发现当访问twiiter或者facebook时,依旧在墙内,链接被重置;网上有牛人提醒,功夫网并没有过多的处理53号端口,可以尝试走53号端口出墙;所以尝试修改squid配置文件中得监听端口3128改为53(53号端口默认是提供DNS服务的),测试,可以出墙了,搞定。

在可以设置代理的客户端比如twiiter设置代理,端口53,成功发推~~;要设置全局代理可以在wifi链接里面设置代理,终于不用捣鼓系统root,又可以享受出墙的时光了~~~

PS:文中出墙本是翻墙,功夫网是GFW。

CentOS6.2编译安装Mysql & Nginx

Standard

本文介绍的安装Mysql和Nginx均为最新(当前mysql5.1.63,nginx版本为1.2.2)。CentOS是6.2的64位版本。

①安装所需的组件

[code lang=”shell”]
yum install -y gcc gcc-c++ glibc glibc-devel glib2 glib2-devel unzip make ncurses ncurses-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel bzip2 bzip2-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers xinetd patch glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel
[/code]

②添加供Mysql和Nginx运行的账户

[code lang=”shell”]
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql
groupadd www
useradd -s /sbin/nologin -M -g www www
[/code]

③下载Mysql包mysql-5.1.63.tar.gz并解压,进入解压目录,配置编译参数

[code lang=”shell”]
tar zxvf mysql-5.1.63.tar.gz
cd mysql-5.1.63
./configure –prefix=/usr/local/mysql –enable-assembler –with-charset=utf8 –enable-thread-safe-client –with-extra-charsets=all –with-big-tables
[/code]

④编译并安装

[code lang=”shell”]
make;make install
[/code]

⑤更改Mysql程序目录的所有者

[code lang=”shell”]
chown -R mysql:mysql /usr/local/mysql
[/code]

⑥复制配置文件

[code lang=”shell”]
cp support-files/my-medium.cnf /etc/my.cnf
[/code]

⑦编辑配置文件

[code lang=”shell”]
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
[/code]

⑧创建用来管理访问权限的数据库mysql

[code lang=”shell”]
/usr/local/mysql/bin/mysql_install_db –basedir=/usr/local/mysql –datadir=/var/lib/mysql –user=mysql
[/code]

⑨复制mysqld管理脚本

[code lang=”shell”]
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
[/code]

⑩启动mysqld

[code lang=”shell”]
/etc/init.d/mysqld start
[/code]

⑾设置root密码

[code lang=”shell”]
#注意替换root-password为自己的MySQL root密码。
/usr/local/mysql/bin/mysqladmin -u root password root-password
[/code]

⑿设置开机自启动

[code lang=”shell”]
chkconfig mysqld on
[/code]

⒀把常用的程序链接加到PATH

[code lang=”shell”]
ln -s /usr/local/mysql/bin/myisamchk /usr/bin/
ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
[/code]

⒁可选:开启Mysql远程访问

[code lang=”shell”]
grant all privileges on *.* to ‘root’@’%’ identified by ‘密码’ with grant option;
flush privileges;
[/code]

⒂下载nginx-1.2.2.tar.gz并解压,完成后进入目录

[code lang=”shell”]
tar zxvf nginx-1.2.2.tar.gz

cd nginx-1.2.2
[/code]

⒃配置nginx编译参数,编译安装

[code lang=”shell”]
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module

make && make install
[/code]

⒄复制配置文件

[code lang=”shell”]
wget http://dl.ilovn.com/uploaded/2012/07/14/nginx.conf
wget http://dl.ilovn.com/uploaded/2012/07/14/default.conf
wget http://dl.ilovn.com/uploaded/2012/07/14/nginx.init

mkdir -p /usr/local/nginx/conf/vhost/
cp -f nginx.conf /usr/local/nginx/conf/nginx.conf
cp -f ./conf/fastcgi.conf /usr/local/nginx/conf/fcgi.conf
[/code]

⒅建立默认站点

[code lang=”shell”]
cp default.conf /usr/local/nginx/conf/vhost/default.conf
mkdir /home/wwwroot
chown -R www:www /home/wwwroot
[/code]

⒆复制启动脚本

[code lang=”shell”]
cp nginx.init /etc/init.d/nginx
[/code]

⒇启动Nginx

[code lang=”shell”]
service nginx start
[/code]

至此,安装Mysql和Nginx就完成了,本文不介绍安装PHP的方法,因为这次实践是要在VPS上通过nginx和tomcat来工作。