<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>笞熊降猫&#124;蛋糕面包熊猫店 &#187; server</title>
	<atom:link href="http://latteye.com/category/linux/server/feed" rel="self" type="application/rss+xml" />
	<link>http://latteye.com</link>
	<description>latteye blog</description>
	<pubDate>Fri, 21 Nov 2008 06:10:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>抛弃VM converter, 从VM server迁移到ESXi</title>
		<link>http://latteye.com/2008/11/%e6%8a%9b%e5%bc%83vm-converter-%e4%bb%8evm-server%e8%bf%81%e7%a7%bb%e5%88%b0esxi.html</link>
		<comments>http://latteye.com/2008/11/%e6%8a%9b%e5%bc%83vm-converter-%e4%bb%8evm-server%e8%bf%81%e7%a7%bb%e5%88%b0esxi.html#comments</comments>
		<pubDate>Thu, 20 Nov 2008 09:10:12 +0000</pubDate>
		<dc:creator>Kiever</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[system]]></category>

		<category><![CDATA[esx]]></category>

		<category><![CDATA[esxi]]></category>

		<category><![CDATA[ssh]]></category>

		<category><![CDATA[vmfs]]></category>

		<category><![CDATA[vmkfstool]]></category>

		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=486</guid>
		<description><![CDATA[迁移环境
VM server 1.04 ==&#62;  ESXi 3.0 update 3
guest OS： RHEL4.4   虚拟机硬盘使用的是lsi的方式
废话不说了，就说一下整个迁移步骤：
1. 打开ESXi的ssh来上传VM server的虚拟机文件
安装好ESXi后，虽然可... ]]></description>
			<content:encoded><![CDATA[<p>迁移环境<br />
VM server 1.04 ==&gt;  ESXi 3.0 update 3<br />
guest OS： RHEL4.4   虚拟机硬盘使用的是lsi的方式</p>
<p>废话不说了，就说一下整个迁移步骤：</p>
<p>1. 打开ESXi的ssh来上传VM server的虚拟机文件<br />
安装好ESXi后，虽然可以通过访问datastore上传下载文件，但速度实在不敢恭维，而且很容易连接超时而中断上传。<br />
打开ssh方法如下：<br />
登录到ESXi的console，按Alt-F1，输入unsupported，会提示password。 输入root的密码就可以进入shell了。<br />
ESXi的ssh是dropbear提供的，这个软件在嵌入式设备上用的很常见吧。<br />
言归正传，在/etc/inetd.conf中将如下行的注释去掉<br />
ssh     stream  tcp     nowait  root    /sbin/dropbearmulti     dropbear ++min=0,swap,group=shell -i<br />
然后ps |grep inetd 将pid记下，最后kill -HUP  这样ssh就可以连上来了。</p>
<p>2. 将VM server的虚拟机文件上传到ESXi的vmfs卷上，只要vmdk的文件全部上传就可以了</p>
<p>3. 使用vmkfstools转换磁盘格式<br />
vmkfstools -i  上传的磁盘文件  要生成的新磁盘文件（必须全路径）</p>
<p>4. 在VIC上新建虚拟机，选custom方式，虚拟机配置最好和原来VM server上一致，在建立磁盘选项中，选择使用已存在的磁盘，然后选中你上面生成的新磁盘文件。</p>
<p>好了， 完毕。没问题的话，你应该可以正常使用了原来的虚拟机了。</p>
<p>经测试，不管是windows还是linux都可以用以上方式迁移，但源虚拟机磁盘必须是scsi， 不能使用ide硬盘。</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/11/%e6%8a%9b%e5%bc%83vm-converter-%e4%bb%8evm-server%e8%bf%81%e7%a7%bb%e5%88%b0esxi.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Vmware server console 连接故障解决一例</title>
		<link>http://latteye.com/2008/11/ts-vmware-server-console.html</link>
		<comments>http://latteye.com/2008/11/ts-vmware-server-console.html#comments</comments>
		<pubDate>Tue, 18 Nov 2008 03:36:03 +0000</pubDate>
		<dc:creator>Kiever</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[console]]></category>

		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=479</guid>
		<description><![CDATA[今天发现vmware server无法用console连接上去，该服务器系统rhel4.4， vmware server 1.04，连接出错的提示是511 Error connecting to /usr/sbin/vmware-serverd process，查vmware-serverd.log，发现如下出错信息：
Nov 18 10:49:... ]]></description>
			<content:encoded><![CDATA[<p>今天发现vmware server无法用console连接上去，该服务器系统rhel4.4， vmware server 1.04，连接出错的提示是511 Error connecting to /usr/sbin/vmware-serverd process，查vmware-serverd.log，发现如下出错信息：</p>
<blockquote><p>Nov 18 10:49:25: app| The vm-list file has changed! Reloading the list of registered vms<br />
Nov 18 10:49:25: app| SSL: Unknown SSL Error<br />
Nov 18 10:49:25: app| SSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure<br />
Nov 18 10:49:25: app| OvlHostStartIo: errno 0<br />
Nov 18 10:49:25: app| vmdbPipe_Streams: Couldn&#8217;t read<br />
Nov 18 10:49:25: app| Failed to add connection to database : -32<br />
Nov 18 10:49:25: app| Failed to accept new client vmdb connection<br />
Nov 18 10:49:25: app| SP: Deleting user session: 0 username: tester<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get IPC connection<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get connection on vmdb port<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get IPC connection<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get connection on vmdb port<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get IPC connection<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get connection on vmdb port<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get IPC connection<br />
Nov 18 10:49:25: app| CnxAcceptConnection: Could not send the magic marker on 20: Broken pipe<br />
Nov 18 10:49:25: app| Failed to get connection on vmdb port</p></blockquote>
<p>ifconfig查看网卡情况，居然连vmnet的虚拟网卡都不见了，好在虚拟机还是能正常访问和工作的。<br />
查看secure登录，发现：</p>
<blockquote><p>Nov 18 10:32:40 sghsrv13 vmware-authd[11053]: PAM unable to dlopen(/lib/security/pam_unix2.so)<br />
Nov 18 10:32:40 sghsrv13 vmware-authd[11053]: PAM [dlerror: /lib/security/pam_unix2.so: cannot open shared object file: No such file or directory]</p></blockquote>
<p>看来vmware的验证模块有些问题， 将<code>/etc/pam.d/ssh</code>拷贝成vmware-authd后，log显示正常，但还是不能登陆。</p>
<p>最后索性将vmware-serverd进程kill掉，然后再<code>/usr/sbin/vmware-serverd -s -d</code>重启服务。<br />
<strong>kill vmware-serverd不会影响运行中的虚拟机，这一步其实是这次解决问题的关键</strong></p>
<p>此时尝试登陆，还是有出错提示，但已经可以登录console了，查看vmware-serverd日志：</p>
<blockquote><p>Nov 18 11:10:00: app| The vm-list file has changed! Reloading the list of registered vms<br />
Nov 18 11:10:00: app| Failed to lookup owner for: /vm/win2003/Windows Server 2003 Standard Edition.vmx. Reason: No such file or directory<br />
Nov 18 11:10:00: app| Could not get canonical path for /vm/win2003/Windows Server 2003 Standard Edition.vmx: No such file or directory<br />
Nov 18 11:10:00: app| Error Adding vm: /vm/win2003/Windows Server 2003 Standard Edition.vmx</p></blockquote>
<p>看来是删除了虚拟机但vm-list没有更新造成以上错误。<br />
手动<code>update vm-list</code>然后再登陆vmware server console，一切正常了。</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/11/ts-vmware-server-console.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>RHCS cluster问题一例Cluster is not quorate.Refusing connection.</title>
		<link>http://latteye.com/2008/10/rhcs-cluster%e9%97%ae%e9%a2%98%e4%b8%80%e4%be%8bcluster-is-not-quoraterefusing-connection.html</link>
		<comments>http://latteye.com/2008/10/rhcs-cluster%e9%97%ae%e9%a2%98%e4%b8%80%e4%be%8bcluster-is-not-quoraterefusing-connection.html#comments</comments>
		<pubDate>Wed, 29 Oct 2008 10:34:31 +0000</pubDate>
		<dc:creator>Kiever</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[rhcs]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=465</guid>
		<description><![CDATA[公司两台服务器用RHCS做HA， 最近出了问题， HA状态显示failed。无奈重启node1后发现cman起不来，报错：
Oct 29 14:14:51  ccsd[5232]: Cluster is not quorate.  Refusing connection.
Oct 29 14:14:51  ccsd[5232]: Error while proc... ]]></description>
			<content:encoded><![CDATA[<p>公司两台服务器用RHCS做HA， 最近出了问题， HA状态显示failed。无奈重启node1后发现cman起不来，报错：<br />
Oct 29 14:14:51  ccsd[5232]: Cluster is not quorate.  Refusing connection.<br />
Oct 29 14:14:51  ccsd[5232]: Error while processing connect: Connection refused<br />
Oct 29 14:14:51  kernel: CMAN: sending membership request<br />
fence进程也启动不了</p>
<p>查阅资料无数， 解决方法如下：<br />
把node2上cluster进程全部关闭，然后依次重新启动服务，顺序如下<br />
service rgmanager stop<br />
service fenced stop<br />
service cman stop<br />
service ccsd stop<br />
然后按相反的顺序启动service，即<br />
node2上 service ccsd start<br />
node1上 service ccsd start<br />
node2上 service cman start<br />
node1上 service cman start<br />
&#8230;&#8230;&#8230;<br />
&#8230;&#8230;&#8230;<br />
总算干净了</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/10/rhcs-cluster%e9%97%ae%e9%a2%98%e4%b8%80%e4%be%8bcluster-is-not-quoraterefusing-connection.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>jboss cluster配置小结</title>
		<link>http://latteye.com/2008/10/jboss-cluster%e9%85%8d%e7%bd%ae%e5%b0%8f%e7%bb%93.html</link>
		<comments>http://latteye.com/2008/10/jboss-cluster%e9%85%8d%e7%bd%ae%e5%b0%8f%e7%bb%93.html#comments</comments>
		<pubDate>Fri, 24 Oct 2008 03:13:13 +0000</pubDate>
		<dc:creator>Kiever</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=448</guid>
		<description><![CDATA[本周做了一个jboss cluster，配置过程不说了，网上多的是，讲讲容易出现问题的地方:
1  jboss的监听地址一定要写网卡绑定的ip，要跟前端apache mod_jk配置中指定的ip一致，不要偷懒写0.0.0.0，否则出... ]]></description>
			<content:encoded><![CDATA[<p>本周做了一个jboss cluster，配置过程不说了，网上多的是，讲讲容易出现问题的地方:<br />
1  jboss的监听地址一定要写网卡绑定的ip，要跟前端apache mod_jk配置中指定的ip一致，不要偷懒写0.0.0.0，否则出现问题的时候会让你抓狂。<br />
2  jboss cluster最好取个名字，不要使用默认的，否则同网段其他jboss的服务器也可能会加入进来，带来麻烦。<br />
    自定义名字也很简单，只需要在jboss启动脚本中加入“-Djboss.partition.name=yourcluster”, yourcluster改成你要的名字。</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/10/jboss-cluster%e9%85%8d%e7%bd%ae%e5%b0%8f%e7%bb%93.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>配置 Tomcat 使用 SSL</title>
		<link>http://latteye.com/2008/09/config-tomcat-use-ssl.html</link>
		<comments>http://latteye.com/2008/09/config-tomcat-use-ssl.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 10:21:32 +0000</pubDate>
		<dc:creator>Kiever</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[openssl]]></category>

		<category><![CDATA[ssl]]></category>

		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=420</guid>
		<description><![CDATA[Use keytool to create ssl certificate – only for self-signed certificate
      First, use following command to generate keystore file
      keytool -genkey -alias tomcat -keyalg RSA -keystore $SavePath/KeyFile
      $SavePath is the path you save the f... ]]></description>
			<content:encoded><![CDATA[<p><strong>Use keytool to create ssl certificate – only for self-signed certificate</strong></p>
<p>      First, use following command to generate keystore file</p>
<p>      keytool -genkey -alias tomcat -keyalg RSA -keystore $SavePath/KeyFile</p>
<p>      $SavePath is the path you save the file.</p>
<p>      Second, uncomment the “SSL HTTP/1.1 Connector” entry in server.xml;</p>
<p>      <strong>Third, update server.xml to use the ssl configuration as above:</strong></p>
<blockquote><p>      <Connector port=”443″ minSpareThreads=”5″ maxSpareThreads=”75″<br />
      enableLookups=”true” disableUploadTimeout=”true”<br />
      acceptCount=”100″ maxThreads=”200″<br />
      scheme=”https” secure=”true” SSLEnabled=”true”<br />
      keystoreFile=”test.keystore” keystorePass=”123654″<br />
      clientAuth=”false” sslProtocol=”TLS”/></p></blockquote>
<p>      The bold font is the keystore filename and password.</p>
<p>      Here we use 443 as the ssl port.</p>
<p>      <strong>Use openssl to make certificate and import to tomcat</strong></p>
<p>      Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration with native server technologies.</p>
<p>      Requirements:</p>
<p>      APR 1.2+ development headers (libapr1-dev package)</p>
<p>      OpenSSL 0.9.7+ development headers (libssl-dev package)</p>
<p>      JNI headers from Java compatible JDK 1.4+</p>
<p>      GNU development environment (gcc, make)</p>
<p>      The wrapper library sources are located in the Tomcat binary bundle, in the bin/tomcat-native.tar.gz archive. Once the build environment is installed and the source archive is extracted, the wrapper library can be compiled using (from the folder containing the configure script, default is /usr/local/apr):</p>
<p><code> ./configure &#038;&#038; make &#038;&#038; make install</code></p>
<p>      After that,</p>
<p>      <code>export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/usr/local/apr/lib</code></p>
<p>      and then update Catalina.sh script file, add following line:</p>
<p>      <code>CATALINA_OPTS=”-Djava.library.path=/usr/local/apr/lib”</code></p>
<p>      To make sure whether tomcat enabled apr, check tomcat log, if no apr enabled, the log file contains: org.apache.coyote.http11.Http11Protocol start, if apr enabled, the log should be org.apache.coyote.http11.Http11AprProtocol start.</p>
<p>      And last, need update server.xml, add line like following:</p>
<blockquote><p><Connector protocol=”org.apache.coyote.http11.Http11AprProtocol”<br />
      address=”{tomcat.listen.address}” port=”443″<br />
      enableLookups=”true” disableUploadTimeout=”true”<br />
      acceptCount=”100″ maxThreads=”200″<br />
      scheme=”https” secure=”true” SSLEnabled=”true” SSLEngine=”on”<br />
      clientAuth=”false” sslProtocol=”TLS”<br />
      SSLProtocol=”-all +SSLv3 +TLSv1″<br />
      SSLCipherSuite=”HIGH:MEDIUM:!aNULL:!ADH:+SHA1:+MD5+HIGH:MEDIUM”<br />
      SSLCertificateFile=”{your certificate file}”<br />
      SSLCertificateKeyFile=”{your certificate key file}”<br />
      SSLPassword=”{your password of certificate}” /></p></blockquote>
<p>      And if we want tomcat only listen on the certen IP, then server.xml should be updated as following:</p>
<blockquote><p>      <Connector port=”443″ address=”10.10.0.1″ minSpareThreads=”5″ maxSpareThreads=”75″<br />
      enableLookups=”true” disableUploadTimeout=”true”<br />
      acceptCount=”100″ maxThreads=”200″<br />
      scheme=”https” secure=”true” SSLEnabled=”true”<br />
      keystoreFile=”test.keystore” keystorePass=”123654″<br />
      clientAuth=”false” sslProtocol=”TLS”/></p></blockquote>
<p>      Add address parameter, tomcat will only listen the IP you defined.</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/09/config-tomcat-use-ssl.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>iptables 同网段端口转发问题</title>
		<link>http://latteye.com/2008/09/iptables-dnat-in-same-netmask.html</link>
		<comments>http://latteye.com/2008/09/iptables-dnat-in-same-netmask.html#comments</comments>
		<pubDate>Tue, 09 Sep 2008 09:24:04 +0000</pubDate>
		<dc:creator>latteye</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=394</guid>
		<description><![CDATA[昨天遇到了 iptables 同网段端口转发的问题，记录一下。
环境描述
内网网段：192.168.96.0/24
网关外网地址（eth1）：116.228.1.1 (虚构)
网关内网地址（eth0）:192.168.96.253
网关上已经做好了 SNAT，同时... ]]></description>
			<content:encoded><![CDATA[<p>昨天遇到了 iptables 同网段端口转发的问题，记录一下。</p>
<p>环境描述</p>
<p>内网网段：192.168.96.0/24<br />
网关外网地址（eth1）：116.228.1.1 (虚构)<br />
网关内网地址（eth0）:192.168.96.253</p>
<p>网关上已经做好了 SNAT，同时做了两个 DNAT 116.228.1.1:18080&#8211;>192.168.96.55:8080</p>
<p>奇怪的是，这个端口映射外部的用户都可以访问到，内部非192.168.96.0/24的用户也可以访问到。但就是 192.168.96.0/24 网段的设备无法访问。</p>
<p>搜到了一篇帖子，详细解释了这个问题：http://linux.chinaunix.net/bbs/archiver/?tid-884706.html 。其中 ssffzz1 的一段解释非常详细，贴于此处：</p>
<blockquote><p>我压根就没听说什么重导,导什么啊.<br />
我都发了1000遍了,你却不用搜索.我只好在发一遍.</p>
<p>另外还有别的解决办法,我没有更新到此帖上来,不过原理大同小异.</p>
<p>看到论坛内很多弟兄做了DNAT,外网正常访问,内网却无法访问.现将原因总结如下:<br />
设网络结构如下：</p>
<p>外网某机器为W1，路由器为R1，内网服务器为S1，内网某机器为C1，设服务为80<br />
地址分布如下：<br />
R1：外（eth0）：192.168.0.5 内(eth1)：192.168.1.254<br />
S1：192.168.1.5<br />
C1：192.168.1.8</p>
<p>原因如下：<br />
外网为什么能成功：<br />
当W1以某IP端口80访问R1的外网地址192.168.0.5时，数据包到达192.168.0.5的接口eth0，ROS根据DNAT规则做了到 S1 192.168.1.5的转发，S1 192.168.1.5收到来自某IP的包后S1会发出正确的相应，此响应的目的IP为W1的IP，根据默认网关（R1的 eth1）192.168.1.254规则把回应包发到R1，因为R1先前DNAT的关系（有DNAT的记录），R1回做一个反方向的NAT转发，从而数据包能够正确的到达W1，因此能够正确通信。<br />
内网为什么不能成功：<br />
1、 DNAT规则是针对eth0口配置的：<br />
设R1的DNAT规则：iptables –t nat –A PREROUTING –i eth0 –p tcp –m tcp –d 192.168.0.5 –dport 80 –j DNAT –-to-destinstion 192.168.1.5<br />
当C1以192.168.0.5为目的IP访问80服务的时候，数据包从192.168.1.254口传入，R1根据路由规则，会把目的 192.168.0.5的地址直接送到上层接口，而不会经过R1为eth0接口配置的DNAT规则，那么此时192.168.0.5开了80服务了吗？很显然没有，因此无法访问。</p>
<p>2、 DNAT的规则是全局的：<br />
设R1的DNAT规则：iptables –t nat –A PREROUTING –p tcp –m tcp –d 192.168.0.5 –dport 80 –j DNAT –-to-destinstion 192.168.1.5<br />
当C1以192.168.0.5为目的IP访问80服务的时候，数据包从192.168.1.254口传入，R1根据DNAT规则会把此数据包DNAT到正确的S1服务器192.168.1.5，当S1收到包的时候S1会根据自己的路由表不经过R1的转发而会直接把数据发到C1，因为C1和S1是在同一个网络，这时候C1回收到S1的回应，按说此时应该能正常通信。但不幸的是我们忽略了源IP的问题。C1是把数据包发给的是R1的外网IP 192.168.0.5，而收到的IP的源地址却是S1的IP192.168.1.5，虽然数据包的除IP外所有的都是正确的，但C1仍然不会接受，会把这个包丢弃的。因此通信还是无法进行。</p>
<p>解决办法：<br />
1、        从DNS入手，在内网设置自己的DNS，或者编辑client的hosts表把S1的地址不要解析成外网的IP，这样就变成内网的通信，还不占用ROS的带宽。这是我首推的方法。<br />
2、        如果一定要走ROS，首先你要为每个可能进入的接口配置相应的DNAT策略，当然使用我上面举例的全局策略就完全可以的，那么我们下面应该如何设置呢？又有两种情况：<br />
1）        如果可以把服务器放到一个单独的网段请你及时这样做。因为这样可以避免攻击，便于控制等等好处N多了。麻烦就是需要ROS多加一个网卡当然如果你配置多地址的话，网卡都可以省了，不过这么省不太好吧。当然还需要配置正确的SNAT。<br />
2）        有些人说我就不能放到单独的网段，那我也有办法，这是我最不赞成的方法，就是请你删掉S1上到192.168.1.0网络的路由表项目，这样会强制S1到C1的数据包走R1，这样R1就可以实施相反的转换，当然也就可以正常通信了。<br />
route del –net 192.168.1.0 netmask 255.255.255.0 gw * dev eth1</p>
<p>以上是我对所谓的回流问题的个人见解。你看后有3种情况：<br />
1、        写的不好没法看，或我都知道了不用看，请别拿石头丢我，我很脆弱。不过有错误尽管提，我很虚心。<br />
2、        和你想的差不多，那恭喜你，我先写出来了。<br />
3、        看不懂。没法子，我语文很差，逻辑很差，英文很差。你将就将就吧。</p>
<p>最后请原谅我不能提供相应的ROS命令，因为这个东西我实在不懂，我只能提供IPTABLES和标准的LINUX命令。</p></blockquote>
<p>结合到我的实际情况就是：</p>
<p>当 192.168.96.1 请求访问 116.228.1.1:18080 时，数据从 网关eth0网卡进入，网关发现116.228.1.1为本机地址，则不将数据从 eth1 口发出，而直接返回 DNAT 信息。此时数据包从 <strong>eth0进</strong>，也从 <strong>eth0 出</strong>。当 192.168.96.55:8080 收到请求之后，直接将数据返回给 192.168.96.1 （因为 iptables 规则里面并没有根据 <strong>eth0 出</strong>来做 SNAT）。当 192.168.96.1 收到 192.168.96.55 返回信息时，则会丢弃，因为他请求的是 116.228.1.1。</p>
<p>这样，解决这个问题的点在于：</p>
<p><strong>1. </strong> DNAT 动作要能接受所有网卡流入的信息。如果原来的 DNAT 写了 -i eth1 ，则肯定会出错了。<br />
<strong>2. </strong> 在上文所述情况下 eth0 出的数据，应该再做 SNAT，将 SNAT 设置为网关地址。让 192.168.96.55 将数据返回到 网关，由网关转发。</p>
<p>那么写这两句：</p>
<blockquote><p>-A PREROUTING -p tcp -m tcp &#8211;dport 18080 -j DNAT &#8211;to-destination 192.168.96.55:8080<br />
-A POSTROUTING -o eth0  -j SNAT &#8211;to-source 192.168.96.253</p></blockquote>
<p>第一句不指定访问 ip！</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/09/iptables-dnat-in-same-netmask.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>MySQL 报错-解决</title>
		<link>http://latteye.com/2008/08/mysql-trouble-shootin.html</link>
		<comments>http://latteye.com/2008/08/mysql-trouble-shootin.html#comments</comments>
		<pubDate>Wed, 13 Aug 2008 09:23:01 +0000</pubDate>
		<dc:creator>latteye</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=364</guid>
		<description><![CDATA[今天在尝试导入一整个数据库之后，再次进入 mysql shell，一直出现奇怪的问题：
mysql> use test
Database changed
mysql> show tables;
Ignoring query to other database
mysql>
几乎所有指令都报这个错误。
在执行多次... ]]></description>
			<content:encoded><![CDATA[<p>今天在尝试导入一整个数据库之后，再次进入 mysql shell，一直出现奇怪的问题：</p>
<blockquote><p>mysql> use test<br />
Database changed<br />
mysql> show tables;<br />
Ignoring query to other database<br />
mysql></p></blockquote>
<p>几乎所有指令都报这个错误。</p>
<p>在执行多次： mysql -v -uroot 之后，就好了。<br />
依旧不知道这个问题的起因，以及明确的解决方法。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>8月14日更新：</p>
<p>发现，现在如果用 mysql -root 进入 mysql shell，就总是出现同样的问题。<br />
但是若 mysql -uroot 则没有问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/08/mysql-trouble-shootin.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>MySQL 配置文件位置问题</title>
		<link>http://latteye.com/2008/08/mysql-mycnf-loca.html</link>
		<comments>http://latteye.com/2008/08/mysql-mycnf-loca.html#comments</comments>
		<pubDate>Wed, 13 Aug 2008 04:13:56 +0000</pubDate>
		<dc:creator>latteye</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=362</guid>
		<description><![CDATA[MySQL 配置文件最常见的有两个地方：
1. /etc/my.cnf
2.~/.my.cnf
今天上午做了几次尝试，稍微写两句结论。
1. /etc/my.cnf 的优先级高。
2. ~/.my.cnf 其中的 ~ 与 mysqld_safe &#8211;user=username 中的 username 用户... ]]></description>
			<content:encoded><![CDATA[<p>MySQL 配置文件最常见的有两个地方：</p>
<blockquote><p>1. /etc/my.cnf<br />
2.~/.my.cnf</p></blockquote>
<p>今天上午做了几次尝试，稍微写两句结论。</p>
<p>1. /etc/my.cnf 的优先级高。<br />
2. ~/.my.cnf 其中的 ~ 与 mysqld_safe &#8211;user=username 中的 username 用户无关。<br />
   ~定位的是当前执行命令的用户。并且 由于 sudo 命令并不会改变环境变量。所以以 latteye 用户执行 sudo 时，并不读取 root 根目录下的配置文件，而是读取 latteye home 目录下的配置文件。</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/08/mysql-mycnf-loca.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>答：外企面SA遇到的面试问题</title>
		<link>http://latteye.com/2008/08/answer-intervie.html</link>
		<comments>http://latteye.com/2008/08/answer-intervie.html#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:48:07 +0000</pubDate>
		<dc:creator>latteye</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[system]]></category>

		<category><![CDATA[block]]></category>

		<category><![CDATA[inode]]></category>

		<category><![CDATA[lvm]]></category>

		<category><![CDATA[sendmail]]></category>

		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=360</guid>
		<description><![CDATA[有朋友问了，我就非常粗略的答一下吧。
1.
a. 这个很简单，先建立 PV，再来是 VG，最后是 LV。把东西都塞到 VG 里面就是了。
b. lvextend 命令有个 -m 参数是建立镜像的。
2. SSL 是在传输层之上的... ]]></description>
			<content:encoded><![CDATA[<p>有朋友问了，我就非常粗略的答一下吧。</p>
<p>1.<br />
a. 这个很简单，先建立 PV，再来是 VG，最后是 LV。把东西都塞到 VG 里面就是了。<br />
b. lvextend 命令有个 -m 参数是建立镜像的。</p>
<p>2. SSL 是在传输层之上的，也就是在 TCP/IP 之上。所以他可以适用与任何的7层服务。</p>
<p>原理么，说出来一大堆了。对对称加密和非对称加密知道是怎么回事情就可以了。</p>
<p>3. 这个问题 kiever 已经说过了。<a href="http://latteye.com/2008/07/use-smtp-by-sendmail.html">请看这里</a>。</p>
<p>4. inode 满了，block 没满。<br />
解决方法，删文件咯。ln 挂其他分区过来咯~</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/08/answer-intervie.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>建立最简单的X环境</title>
		<link>http://latteye.com/2008/07/%e5%bb%ba%e7%ab%8b%e6%9c%80%e7%ae%80%e5%8d%95%e7%9a%84x%e7%8e%af%e5%a2%83.html</link>
		<comments>http://latteye.com/2008/07/%e5%bb%ba%e7%ab%8b%e6%9c%80%e7%ae%80%e5%8d%95%e7%9a%84x%e7%8e%af%e5%a2%83.html#comments</comments>
		<pubDate>Fri, 11 Jul 2008 09:33:44 +0000</pubDate>
		<dc:creator>Kiever</dc:creator>
		
		<category><![CDATA[server]]></category>

		<category><![CDATA[X window]]></category>

		<guid isPermaLink="false">http://latteye.com/?p=353</guid>
		<description><![CDATA[目前linux服务器上，一般比较少使用X环境， 但在某些情况下，又必须启用X才能完成一些任务，比如安装oracle。这种情况下当然也可以使用xhost将远程程序输出到本地X环境来显示。但我们今天的... ]]></description>
			<content:encoded><![CDATA[<p>目前linux服务器上，一般比较少使用X环境， 但在某些情况下，又必须启用X才能完成一些任务，比如安装oracle。这种情况下当然也可以使用xhost将远程程序输出到本地X环境来显示。但我们今天的话题是如何快速安装X环境。<br />
现在的X环境， 用的比较多的是gnome，KDE，还有相对轻量级的xfce。 但其实对真正服务器应用来说， X始终只是一个配角。<br />
那如何部署最简单的X环境呢？其实以上提到的X环境（gnome，KDE，xfce）都是xinit进程加上窗口管理器和一些应用程序的组合而已。换言之，最简单的X就是xinit而已。</p>
<p>目前常见的linux系统，包括redhat，centos，debian，arch等，只需要安装xinit（当然还有它所依赖的包）即可。通过apt、yum都可以很容易的完成安装。从完全不带X的console加装X，只需20-30M就可以完成X环境部署。</p>
]]></content:encoded>
			<wfw:commentRss>http://latteye.com/2008/07/%e5%bb%ba%e7%ab%8b%e6%9c%80%e7%ae%80%e5%8d%95%e7%9a%84x%e7%8e%af%e5%a2%83.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
