2008/01/08

X-Win32 与ssh

没有评论:
什么是Xwin32?在Unix上面的窗口系统叫做x-window,而Xwin32就是在MS-windows上面用来仿真x-window窗口环境的 软件。当然!用来模拟X-window的软件并非只有x-win32,但是以它所用的硬盘空间最小,解开后仅约6MB左右,取得也最容易。相对的,他是一 套有版权的软件,有每次使用2 小时的限制,同一个子网络上面只能够跑一支x-win32的程序。
  
  取得:
  你可以用archie搜寻xwin32.zip这个字符串,就可以找到一大堆有收录这个软件的FTP站,大小为2MB出头。
  
  安装:
  用winzip或是相关的解压缩软件将他解开来,里头有一个setup档,执行该setup就可以安装完成,同时在95/NT的程序集里会增加xwin32这个选项,里头会有X-util以及X-win32这两个东西。
  
  设定:
  xwin32的使用是在你执行x-win32这个程序时就已经启动,但是你还必须设定xhost以及依照不同的情况选择你的window mode。
  
  xhost的设定对xwin32这个程序的意义是哪些计算机是可信赖的,也就是允许在名单中的机器送数据到xwin32,然后由xwin32输出到屏 幕,如果送数据的机器不在名单中,就会被xwin32所拒绝。xhost的设定在X-Win32 Utility => Optionsxhosts,在workspace中输入工作站的IP,点选add便会将该IP加入xhosts的名单。
  
  Window mode:如果你用想用完整的窗口环境你就必须将window mode选为single window mode,但是先决条件是你必须要有一个够快的网络,以及远程主机上面必须要有跑xdm,否则请不要选择single window mode。Window mode的选项里有一个minimum MS win size,应该是用来规范窗口的大小,但是我使用时都是让两个值为0。Window mode的设定在X-win32 Utility => Options => windowmode。
  
  X-Win32 utility:xwin32所有的设定都是由他来负责,点选灰色的地方会显示出xwin32 版本,DOS的版本,95的版本,可用的GDI以及User资源。Options选项里的Display可以让你看到一些网络的相关数据,以及你自己计算 机上的IP address。里头的Edit sessions是用来编辑连接的方式,预设的有三个;分别是 sun unix XDMCP,分别是使用rsh,rexec,以及XDMCP三种方式,我不建议使用rsh,在大多数的情况下也没有rsh可以用。你可以另外编辑 session或是使用预设的session。如果你要用rexec,你可以编辑unix这个sessions,在host name填入工作站的IP(domain name应该也可以),login填入你的帐号,command则是登入后执行的命令,预设的那个路径并不存在sunos上面,所以你必须将他改为 /usr/openwin/xterm,其它的后面的参数则可以不要动它。
  Linux以及FreeBSD请参考本身的路径,没记错的话应该都是/usr/X11R6/bin/xterm,passwd则是可输入可不输入,不输入的话你执行这个session时他会再叫你输入的。
  如果你是用XDMCP的话就比较简单,用broadcast的方式就好了,indirect和Old indirect用起来都有点问题。
  
  使用:
  以下介绍Terminal mode 以及XDMCP两种方式
  Terminal mode:
  Terminal mode有两种方式
  1.用session rexec一个xterm
  不要点选single window mode,执行x-win32选择刚刚设定好的unix session,正常的话就会出现一个xterm的窗口,打setenv DISPLAY your-ip:0.0
  (如果你的shell 是bash,好像是打
  set DISPLAY=your-ip:0.0
  export DISPLAY)
  your-ip是你机器的IP,你可以在前面说的display选项里头看到,然后你就可以执行其它的x程序,画面就会出现,跑个xv来看看吧:)。
  2.telnet
  执行xwin32,然后telnet 登入工作站,也是打入setenv DISPLAY your-ip:0.0之后就跟1一样。
  
  XDMCP:
  Broadcast的方式会帮你寻找同一个子网络上面有跑xdm 的主机,不是同一个子网络的就得用old indirect或是indirect,不过好像都有点问题,有的时候都work不起来,可能是程序的问题吧!
  
  快速范例:
  下面是几个范例
  远程工作站 IP 140.134.11.1
  xterm的路径 /usr/openwin/bin
  本地计算机 IP 140.134.11.2
  工作站上面的ID test
  
  以terminal 的方式
  x-win32 Utility => options => xhosts 填入140.134.11.1
  编辑unix session
  选择rexec
  host name 填140.134.11.1
  command前面改成/usr/openwin/bin/xterm
  执行xwin32,然后执行unix这个session,当出现一个xetrm之后打setenv DISPLAY 140.134.11.2:0.0然后就可以跑你想要跑的x程序
  
  or
  x-win32 Utility => options => xhosts 填入140.134.11.1
  执行x-win32
  telnet 登入 140.134.11.1
  setenv DISPLAY 140.134.11.2:0.0
  然后就可以跑你想要跑的x程序
  
  XDMCP:
  x-win32 Utility => options => xhosts 填入140.134.11.1
  x-win32 Utility => options =>window mode =>点选single window mode
  执行X-win32=>XDMCP
  选择你要登入的主机进行登入
  
  进阶:
  如果你有xcin&crxvt而你想在xwin32下看到中文的话,你必须要有中文的字形,请把工作站上面的中文字形抓下来,包含 fonts.alias以及fonts.dir这两个文件,建一个目录放起来,在xwin32 utility => fonts => modify fontpath(这一点跟改XF86Config里的font search path有点像),xwin32不接受Z的字型压缩文件,所以请将Z解开,更改fonts.alias及fonts.dir 的相关设定,或是用fonts里的功能造新的fonts.alias或是fonts.dir。你可以跑crxvt但是我建议不要跑xcin(最好不要 用),因为xcin会干扰到原本95/NT上的中文输入,会造成原输入法的问题,

Ubuntu: install ssh server

没有评论:

ubuntu缺省安装只有ssh client,没有装ssh server。可以试命令
ssh localhost
证实是否已安装。
安装命令:
sudo apt-get install ssh

Note: this command will install openssh-server + ssh
configuration: /etc/ssh/sshd_config
restart: /etc/init.d/ssh restart

如要远程登录,记住在system -> admin -> login window中将remote login服务打开 (same as local).

由于局域网管理限制,外网可能还是无法登录打开sshd 的ubuntu机器。这里我看到一篇文章将如何利用公共站点作一个tunnel。

ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),内网的朋友不妨一看。
内网的朋友苦于没有合法 ip,不能对外提供 internet 服务。解决方案很多,可以通过在网关做端口映射,或其他的辅助软件等。
本文介绍两种比较简单实用的方法,利用 ssh 这个强大的工具。
(以下方法不分平台,都适用)
案例一、
内网主机 A ,开了 http,ftp ,http ,vnc,sshd,socks5,cvs 等服务。无合法 ip 地址。
外网主机 B ,开了 sshd 服务。有合法 ip : 218.xxx.xxx.xxx
我们的目的是让 B 能访问 A 上的各种服务。
步骤:
1、A 知道 B ip 后,先用 ssh client 连上 B,命令如下:
ssh -R 1234:localhost:21 -l root 218.xxx.xxx.xxx
解释:
关于 ssh 的参数,请看 ssh --help
-L listen-port:hostort Forward local port to remote address
-R listen-port:hostort Forward remote port to local address
-L local (本地) -R :remote (远程)
-R 1234:localhost:21 其实做了个“端口转发(forward)"。
意思是主机 A 把本地的 21端口(对应ftp服务)映射为 B 的1234 端口(任意未被占用),同时 A 监听 B 的1234 端口。
在 B 上用 netstat -al | grep 1234 ,你能看到这个监听连接。
任何发送到 B 1234 端口的请求将被传送到 A的 21 端口。
2、B 用 ftp 工具(任意,如gftp) 连本地的 1234 端口,输入 A 的 ftp 用户和密码。
ftp localhost 1234
千万不要觉的奇怪,为什么连的是本地的地址。
举个不恰当例子,相当于 A 在 B 的房间里装了个窃听器(监听端口),那么 B 在房间里说的话就通过窃听器传送到了 A。
3、推广:
如果 B 没占用 21 端口的话,那么可以写成:
A使用: ssh -R 21:localhost:21 -l root 218.xxx.xxx.xxx
B使用: ftp localhost
如果你想使用 A 上的 http 或其他服务,只需改变服务端口:
http服务 :
A使用:ssh -R 1234:localhost:80 -l root 218.xxx.xxx.xxx
B使用:w3m http://localhost:1234
sshd服务:
A使用:ssh -R 1234:localhost:22 -l root 218.xxx.xxx.xxx
B使用:ssh localhost -p 1234
vnc 服务:
A使用:ssh -R 1234:localhost:5901(其他) -l root 218.xxx.xxx.xxx
B使用:vncviewer localhost:1
socks5服务:
A使用:ssh -R 1234:localhost:1080 -l root 218.xxx.xxx.xxx
B 略
cvs 服务:
A使用:ssh -R 1234:localhost:2401 -l root 218.xxx.xxx.xxx
B使用:cvs -d server:root@localhost:1234/home/cvsroot login
这里是否一定要用 root ,涉及到权限问题,具体还得靠大家来总结经验。
案例二、
部分朋友会问了,这样的话只是两台机器的互相通讯,如何让广域网的人都能访问呢?
聪明的你,这时候可能已经有了答案。
内网主机 A ,开了 http,ftp ,http ,vnc,sshd,socks5,cvs等服务。无合法 ip 地址。
外网主机 B ,开了 sshd 服务。有合法 ip : 218.xxx.xxx.xxx
我们的目的是让 internet 上的任何主机能访问 A 上的各种服务。
步骤:
1、首先,B 的sshd 服务端做点小小的设置:
vi /etc/ssh/sshd.config
加入 GatewayPorts yes
然后重启 sshd 服务: /etc /init.d/ssh restart 或 /etc/init.d/sshd restart
(解释:
不加,默认会把监听端口绑定在 localhost 或 lo(127.0.0.1),这样除了 B自身别人是没法访问监听端口的。
加入 GatewayPorts yes,把监听端口绑定到 0.0.0.0 ,这样外部的所有机器都能访问到这个监听端口。
主要是考虑安全性问题,默认情况,只允许本地访问。
这里才是真正的难点,实验了一个晚上,累人呀!给点鼓励吧 :)
2、A 知道 B ip 后,先用 ssh client 连上 B,命令如下:
ssh -R 21:localhost:21 -l root 218.xxx.xxx.xxx
(事先确定 B 的21 端口未被占用)
3、分布在 internet 的其它客户机使用 ftp 工具(任意),连 B 21端口。
ftp 218.xxx.xxx.xxx 21
你会发现自己连上了内网 A 的ftp 服务。
此法和案例一完全一样。
internet --------->> B 21 端口----------->>A 21端口
可以叫做端口转发,或隧道技术,也可以称之为跳板(B),或反弹 。呵呵,我瞎说的。。。
可能遇到的问题:
Country:/etc# ssh localhost -p 1234
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
be:5f:d2:45:66:4d:0c:9e:2b:6b:45:65:a7:b2:85:28.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:11
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.
Country:/etc# ssh localhost -p 1234
root@localhost's password:
Last login: Mon May 5 02:39:53 2003 from localhost
localhost root #
如上问题,请删除 ~/.ssh/known_hosts,然后再试。
点评:
当然 ssh 还有很多的功能没有用,如先用 ssh 连接 上去后,可以用 scp命令来存取文件,等等。
scp -P xxx user@hostath/file
其它突破网关传送文件的方式也千变万化。
优点是:
可以突破网关,一般情况下,向网管要求在网关上给你做端口映射是不现实的,但用此法你可以让要好的朋友给你做。
使用方案一:比较点对点传送文件比较方便,或使用ssh进行远程控制内网。
ssh本身是加密,保证安全可靠。
缺点也不少:
使用 ssh 加密,势必影响性能,可以用 -C 选项调节压缩率。
如果象方案二使用额外的服务器,数据都要服务器中转(我是这样认为,没跟踪过),势必影响速度。
公网的服务器不好找。

如何在家中用VPN与学校网络相连

没有评论:

1. At first u need to create a new vpn connection.
Click Start->All programs -> Accessories -> Communications -> New connnection Wizard, then select

Network connection type : "connect to the network at my workplace"
Network connection: "Virtual Private Network connection"
Connection name: ntu-cais18
VPN server : vpngate.ntu.edu.sg (http://www.ntu.edu.sg/cits2/ras/vpnXP.htm)

now the setup is completed.

2. Launch VPN connection by entering \domain\userid and passwd, and u will logon to the campus intranet.

btw: NTU VPN service and proxy information
I don't think i need to install NTU vpn software on my localhost. Now my pc works well with the manually created connection and without proxy setup.

NTU network configuration

1. domain
cais-18 155.69.149.85 DHCP
or static
155.69.148.97/255.255.248.0
DNS: 155.69.148.176 =cais0
GateWay: 155.69.151.254

2. printer
hpLaserJet4300 cais0 IP_155.69.100.226:9100 type: 4300
hpLaserJet4250 cais0 type: 4250n PCL6

3. door code
ddmmyy

2008/01/07

Ubuntu: 安装gaim/pidgin

没有评论:

MSN, Yahoo, and QQ 大家都知道gaim已经支持了,其实gtalk也是可以的!Google的gtalk使用的是Jabber的XMPP协议,而Linux上流行的IM客户端Gaim支持Jabber,所以Gaim自然可以连 通gtalk服务器。Gaim是个开源项目,最近Google招收了一个这个开源项目中的工程师Sean。Sean在Gaim主页中提到这件事情,并讲了 一些gtalk的发展目标和他在gtalk项目中的工作。

ubuntu 下的gaim添加gtalk用户,设置如下:

登入选项
协议:Jabber
用户名:gmail邮箱前缀
服务器:gmail.com
资源:google talk
密码:gmail邮箱密码

显示主要选项:
Jabber选项
端口:5222
连接服务器:talk.google.com

具体可见google 的帮助
http://www.google.com/support/talk/bin/answer.py?answer=24073

ubuntu 7 下安装 pidgin-2.0.2

等了许久的 Pidgin 2.0.0 正式版终于在今天发布了。目前,在 Ubuntu 的软件仓库中你还无法直接安装它。如果着急想要抢先体验的话,那么可以手动编译安装 Pidgin 2.0.0。

1、下载源文件pidgin-2.0.2.tar.bz2
2、准备编译 Pidgin 所需的依赖包:
sudo apt-get build-dep gaim
3、 解压缩 pidgin-2.0.2.tar.bz2
4、cd pidgin-2.0.2 (切换到解压后所在目录)
5、./configure --prefix=/usr (进行编译配置)
6、make (对源码包进行编译,这个过程会很长,根cpu的性能有关,我的电脑大约用了7分钟)
7、sudo make install (安装到系统)
到此Pidgin就编译好了。在终端输入pidgin就可以使用了。

这样 终于能用QQ了

终于安装成功,并且可以用,但是出现一个问题啊,就是图标显示不出来,就是应用程序->internet->pidgin 的图标不能显示,是个空白的框
我知道怎么让pidgin的图表出来了。
执行sudo gedit /usr/share/applications/pidgin.desktop

找到Icon项,改成Icon=/usr/share/icons/hicolor/24×24/apps/pidgin.png

OK。

Pidgin的升级

Ubuntu 7.10自带的聊天软件Pidgin是2.2.1,但是其QQ插件已经过期,无法正常登录腾讯的服务器,总是显示密码错误。通过以下方法,可以将Pidgin升级到2.3.1,顺利使用QQ。

linuxdesktop.cn
Pidgin 2.3.1发布好几天了,但是Ubuntu不知道要什么时候才会把它加进源里。

急着用Pidgin,又怕自己编译编不好?还是等别人编译放出来?

别着急!加一个源,这个源可以让你与最新的软件齐头并进!

这个来自德国的源有异常丰富的新酷软件,从一定程度上,弥补了Ubuntu官方源对于最新软件反应缓慢的缺点。

虽然是德国的,但是据abel_deep朋友反应速度达到过160KB/s。

至于新酷软件嘛,我来例举一下:

除了Pidgin 2.3.1 以外,还有最新的GIMP 2.4.2、Liferea 1.4.8、Tomboy 0.9.2,甚至还有最新的Avant Window Navigator 0.2.1。

另外,竟然在这里看到了──Ubuntu Tweak。哈哈!版本也是最新的0.2.1(顺便告诉大家,新的Ubuntu Tweak快要发布了)

说了那么多,你肯定想加这个源了。

首先,在终端下执行下面的命令打开源代表

sudo gedit /etc/apt/sources.list

然后把这两行加入:

deb http://apt.schmidtke-hb.de gutsy main
deb-src http://apt.schmidtke-hb.de gutsy main

再拿把安全密钥:

wget http://ubuntu.schmidtke-hb.de/aptrepository.asc
sudo apt-key add aptrepository.asc

完了以后,就sudo apt-get update,更新你的软件列表吧。没过一会,“更新管理器”就会跳出来了。

好多的软件!

实际使用时,“更新管理器”没有自动跳出来,可能因为我刚刚进行完毕系统更新。只要手动把新立得打开就行了。

ubuntu 8.04 中 Trash 所在的的目录

没有评论:
如果清空回收站发现报告权限问题无法删除文件,可以到 ~/.local/share/Trash/下手工删除:

cd ~/.local/share/Trash
sudo rm -rf files/*
sudo rm -rf info/*

Note: ubuntu 7.10 中Trash所在目录为 $HOME/.Trash/*