日志存档:05, 2006

VNCServer 的安装配置

2006-05-24,星期三 | 分类:Linux | 标签: | 742 Views

安装 Oracle 需要在 GUI 下,用 VNC 远程登录比较方便。

对于 Debian ,可以 apt 安装 gnome 和 gdm ,再安装 vncserver ,
然后配置 VNCServer
# vi /etc/vnc.conf
$geometry = "1024x768";
$depth = "16";

启动
$ vncserver :1
停止
$ vncserver -kill :1
修改密码
$ vncpasswd

对于 Redhat ,安装系统的时候选上 GNOME 桌面。
VNCServer 的配置
# vi /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
执行 vncserver ,会要求设置连接密码。接下来 $HOME/.Xauthority 文件和 $HOME/.vnc 目录也就创建了。

之后可以使用
# /etc/init.d/vncserver stop
# /etc/init.d/vncserver start
来关闭和启动服务。

$HOME/.vnc/xstartup 执行 X 启动时的设置,如果要启动 GNOME 可以加入 gnome-session ,而要启动 KDE 的话可以加入 startkde 。如果设置了开机自动启动,vncserver 还没有得到语言的环境变量,远程登录后是英文界面,可以在 xstartup 中加入“LANG="zh_CN.GBK" export LANG”。配置文件的一个范例:
# cat $HOME/.vnc/xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

LANG="zh_CN.GBK"
export LANG

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session
#startkde

Redhat vim 语法着色

2006-05-23,星期二 | 分类:Redhat/CentOS | 标签: | 801 Views

首先安装 vim-enhanced ,
# yum -y install vim-enhanced
然后,
# vi ~/.vimrc
syntax on ,显示颜色;syntax off ,则不显示颜色。
为了方便,给 vi 做个别名,
# vi ~/.bashrc
alias vi='vim'
# source ~/.bash_profile

ProFTPD & MySQL 4.0 的超时中断连接问题

2006-05-18,星期四 | 分类:FTP, MySQL | 标签: | 660 Views

MySQL 的 interactive timeout 缺省设置为 28800 秒,这个值实在太大了,根据程序与数据库交互的状况把这个值改小了,结果使用 MySQL 4.0 的 ProFTPD 频繁断线。
SHOW PROCESSLIST;
发现操作 ProFTPD 数据库进程的运行时间在不停增加,直到达到 interactive timeout 参数定义的时间后才断开,这时,客户端与 ProFTPD 的连接也就断开了。
 
其它使用 MySQL 4.1 的 ProFTPD 没有这样的问题,看不到操作 ProFTPD 数据库的进程。(ProFTPD 的版本都是相同的)
 
也就是说,ProFTPD 使用 MySQL 4.0 验证用户时是建立的“持久”连接,只要客户端有操作就会去查询数据库,对客户端身份进行验证;而在使用 MySQL 4.1 时,只是在登陆时查询数据库验证身份,成功登陆后便由 ProFTPD 自己维护这个 session ,不再查询数据库了。
 
修改 MySQL 4.0 的  interactive timeout ,改为和 ProFTPD 设定的 TimeoutIdle 时间同一值后解决问题。

Debian 做 ADSL NAT 的 MTU 问题

2006-05-09,星期二 | 分类:Debian, Network | 标签: | 2,814 Views

以前用网关路由器拨号上网时使用微软的东西是没有问题的。现在换成用 Debian 拨号再使用 iptables SNAT 后,MSN 就不能登陆了,打开 www.msn.com.cn 非常慢且只能打开页面的头部,而 windowsupdate.microsoft.com 根本就打不开了。
 
google 后得知修改 PC 网卡的 MTU 值可以解决这个问题。
在 Windows 2000/XP 下修改注册表:
『HKEY_Local_Machine』->『SYSTEM』->『CurrentControlSet』->『Services』->『Tcpip』->『Parameters』->『interface』
找到所使用的网卡,『编辑』->『新增』->『DWORD值』之后,建立一个名为『MTU』的机码,右键『修改』,选择十进制,填入 1480 。
 
但是,这个方法很蹩脚呢,内网中的机器那么多,一个一个去改是很不现实的。
对网关进行修改才是正道。
 
在网关服务器上,
# ip addr sh
发现 ppp 设备的 mtu 值是 1492 。
就在 /etc/ppp/peers/dsl-provider 文件中取消了“mtu 1492”这行的注释并改为了 1480 ,重新拨号却没有变化。在 /var/log/messages 中还看到这样的信息:
Couldn't increase MTU to 1500
Couldn't increase MRU to 1500

没有设置 mtu 值的时候也会有这样的信息,这就意味着 pppoe 忽略了 mtu 这个参数。
 
没办法,继续 google ,有说 plugin rp-pppoe.so 有 bug ,就注释掉这行,改用
pty "/usr/sbin/pppoe -I eth1 -T 80 -m 1480"
结果根本不能拨号了。-_-!
软的不行就来硬的,直接
# ifconfig ppp0 mtu 1480
这下 MSN 能登陆了,但是微软的网站还是打不开。
 
注:Redhat 可以修改 /etc/sysconfig/networking-script/ifcfg-ppp0 ,添加 CLAMPMSS=1480 。
 
最后的解决办法——用 iptables 改 MTU 值。
# iptables -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j
TCPMSS --clamp-mss-to-pmtu
把出站包大小改为 ppp0 的 MTU 尺寸,这下就一切正常了。
MSS 既 Max Segment Size 。
 
参考资料:鸟哥的 Linux 私房菜——连不上一些网站的处理方法 MTU 修改
 
 
另记:
由于 Microsoft Windows 系列操作系统传送的 TCP 包请求的 segment 太大,超出了 PPPoE 的 frame 所能够接受的范围,导致 PPPoE 传送“don't fragment”的 ICMP 而不是“must fragment”,最终导致网站没有响应。这种情况称为“Black Hole Router”。
—— 2006.05.13 00:30
 
又看了一下 /etc/ppp/ip-up.d 下的脚本,发现 0clampmss 里的内容是这样的:
#!/bin/sh
# Enable MSS clamping (autogenerated by pppoeconf)
iptables -o "$PPP_IFACE" --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
看来 Debian 的 pppoe 也早有考虑。我在做 SNAT 前清空了 iptables 规则,造成 pppoe 添加的 iptables 规则失效了。
—— 2006.06.01 13:48

Redhat autofsck

2006-05-08,星期一 | 分类:Redhat/CentOS | 标签: | 749 Views

非正常重启后,系统缺省只会提示“Press Y in 5 seconds to force file system integrity check”。
对于无人看守的服务器,系统只会在等待5秒之后继续正常启动而不会做 fsck 操作。
解决办法:
# echo "AUTOFSCK_TIMEOUT=5" > /etc/sysconfig/autofsck
# echo "AUTOFSCK_DEF_CHECK=yes" >> /etc/sysconfig/autofsck

Pages: 1 2 Next