<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>swigger's BLOG &#187; linux</title>
	<atom:link href="http://www.swigger.net/archives/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.swigger.net</link>
	<description>醉卧沙场君莫笑 古来征战几人回</description>
	<lastBuildDate>Wed, 11 Aug 2010 17:08:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>debian linux 配置ipsec l2tp PSK</title>
		<link>http://www.swigger.net/archives/196.html</link>
		<comments>http://www.swigger.net/archives/196.html#comments</comments>
		<pubDate>Sun, 09 May 2010 14:33:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.swigger.net/?p=196</guid>
		<description><![CDATA[PSK=windows中说的预共享密钥 折腾了一天多，总结一下。一个字：日！ pptp的配置比较简单，三两个就折腾出来了。l2tp配置文章较少，大都说得很轻松的样子。实际上如果环境顺利，也不需要折腾这么久，只是。。。。。 先说下总结出来的步骤：（实验环境debian 192.168.163.133  xp 192.168.1.200 都在vm里） 编辑 /etc/sysctl.conf 启用 ipv4 forward.   sysctl –p 应用 安装组件 apt-get install pptpd l2tpd openswan ipsec-tools 修改 /etc/ipsec.secrets，设置PSK。 192.168.163.133  %any: PSK &#8220;12345678&#8243; 修改 ipsec.conf Copy /etc/ipsec.d/examples/l2tp-psk.conf 的两个conn段配置 修改: gateway &#8230;. rightprotoport=17/%any 修改/etc/xl2tp/xl2tp.conf [global] port = 1701 [lns default] ip range = 192.168.254.20-192.168.254.255 local ip = 192.168.254.2 require chap = yes refuse [...]]]></description>
			<content:encoded><![CDATA[<p>PSK=windows中说的预共享密钥</p>
<p>折腾了一天多，总结一下。一个字：日！</p>
<p>pptp的配置比较简单，三两个就折腾出来了。l2tp配置文章较少，大都说得很轻松的样子。实际上如果环境顺利，也不需要折腾这么久，只是。。。。。</p>
<h2>先说下总结出来的步骤：（实验环境debian 192.168.163.133  xp 192.168.1.200 都在vm里）</h2>
<p>编辑 /etc/sysctl.conf 启用 ipv4 forward.  <br />
sysctl –p 应用</p>
<p>安装组件<br />
apt-get install pptpd l2tpd openswan ipsec-tools</p>
<p>修改 /etc/ipsec.secrets，设置PSK。<br />
192.168.163.133  %any: PSK &#8220;12345678&#8243;</p>
<p>修改 ipsec.conf</p>
<p>Copy /etc/ipsec.d/examples/l2tp-psk.conf 的两个conn段配置</p>
<p>修改:</p>
<p>gateway<br />
&#8230;.<br />
rightprotoport=17/%any</p>
<p>修改/etc/xl2tp/xl2tp.conf</p>
<p>[global]<br />
port = 1701<br />
[lns default]<br />
ip range = 192.168.254.20-192.168.254.255<br />
local ip = 192.168.254.2<br />
require chap = yes<br />
refuse pap = yes<br />
require authentication = yes<br />
name = pandora<br />
pppoptfile = /etc/ppp/options.l2tpd.lns<br />
flow bit = yes</p>
<p>创建 /etc/ppp/options.l2tpd.lns</p>
<p>ms-dns 8.8.8.8<br />
ms-dns 208.67.222.222</p>
<p>重启服务。以上实际上就是顺利情况下要做的事情了。</p>
<h2>但我折腾了一天多！因为&#8230;.</h2>
<p>rightprotoport=17/%any这一句，默认是rightprotoport=17/0</p>
<p>此时会出错，啥也连不上，改成%any，折腾了好久想到要改这里，改成%any，还是不行，改成17/1701，好，终于行了。</p>
<p>换到正式环境，还是不行。最终tcpdump发现，写成17/1701，则只有公网IP才能连上服务器！</p>
<p>准确的说，也不是公网IP，而是服务器的包要发回到源IP的1701端口，发得通才能连上。所以实验环境的两相同子网虚拟机可连。</p>
<p>正式环境里用公网IP不用家里路由器拨号可连。但在内网就不可连。所以写成17/1701是太不好用了。但写成%any或0都不可以。</p>
<p>实验环境的debian和正式环境的ubuntu都验证了这一现象。</p>
<p>改了配置查了错误数据，是这样的提示：</p>
<p>control_finish: Peer requested tunnel 56 twice, ignoring second one.</p>
<p>搜一下这个错误，网上有很多难兄难弟，但基本都没个结论。比如这位仁兄：<a href="http://bbs.chinaunix.net/viewthread.php?action=printable&amp;tid=1422551">http://bbs.chinaunix.net/viewthread.php?action=printable&amp;tid=1422551</a></p>
<p>为什么？不得不怀疑是BUG！apt-get remove  openswan。下载最终版编译安装。17/%any好了。也就是说：</p>
<p><strong><span style="color: #ff0000;">debian和unbuntu的openswan 2.6.23+dfsg-1 有严重bug, rightprotoport=17/0和rightprotoport=17/%any不能用！</span></strong></p>
<p> 绝大多数时间就耗在斗争这个问题了。而且换成最新版的openswan 2.6.25之后，rightprotoport=17/0还是不能工作！只是17/%any可以了。</p>
<p>中间还出现过别的问题 ，在配置 /etc/ppp/options.l2tpd.lns 时，win7突然连不上服务器了，XP可以。怎么配来配去甚至配回去都不行。无耐重启WIN7，还是不行。再重启了服务，终于行了。看来这个鬼服务一点鲁棒性也没有。</p>
<p>不过，即使是最终配到现在，也还是有一个问题没有解决。那就是，同一个内网里，只有一个设备可以连接。WIN7上去了，XP就上不去了，反之同样。还好我的目的是给手机用，此问题暂时忽略。不过还是很不爽，这意味着在公司，我不能把这个设置告诉别人了，因为大家在同一内网，别人一连L2tp，我就连不了了。只能让别人连pptp。<span style="color: #0000ff;">如果有哪位知晓，请回复告之。</span></p>
<p><span style="color: #000000;"><a href="http://www.jacco2.dds.nl/networking/freeswan-l2tp.html">todo:view this.</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.swigger.net/archives/196.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在linux下，更新域内的主机名/IP映射关系</title>
		<link>http://www.swigger.net/archives/50.html</link>
		<comments>http://www.swigger.net/archives/50.html#comments</comments>
		<pubDate>Fri, 28 Nov 2008 11:19:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.swigger.net/?p=50</guid>
		<description><![CDATA[域内，windows的机器可以通过 ping直接获得IP地址。 比如，ping computerA 可以得到机器名为computerA的IP地址。 linux机器如果在域内动态分配IP地址，那么，如何根据其主机名，取得其IP地址呢？ 一般情况下，配好了 hostname为xxx.test.com 的机器是自然可以这样得到IP地址的。 但如果不行的话，就有两种方案： A. 通过nsupdate来使域内的DNS服务器更新自己的IP。 $ nsupdate &#62; update add xxx.test.com 9999 A 192.168.1.20 &#62; &#62;quit B. 注册自己在 WINS服务器上的名字。 这一项还没有找到现成程序，可能要自己编程解决。也许有吧，谁知道的留 言告诉我。 编程不麻烦，假设linux的IP是192.168.1.4 ，找一台windows，设IP为192.168.1.10 在linux上面运行命令 tcpdump -X -s 300 &#8220;src host 192.168.1.10&#8243; 然后在 win上，把wins服务器设为 192.168.1.4 这样,win就会去linux注册自己，看到相应的二进制包，仿照着就可以开始开发了。 当然要开发，光有二进制包还不行，可以参照着 rfc1002 先把包弄懂。rfc1001也可先看看。 弄懂后，写个程序就易于反掌了！   顺便说一下，在dns上注册名字后，windows 可能还不能马上ping到，ping会报告找不到名字。这是因为windows有缓存。可以用下面这条命令手动清掉windows的DNS缓存(DNS Cache)。 ipconfig /flushdns    ]]></description>
			<content:encoded><![CDATA[<p>域内，windows的机器可以通过 ping直接获得IP地址。</p>
<p>比如，ping computerA 可以得到机器名为computerA的IP地址。</p>
<p>linux机器如果在域内动态分配IP地址，那么，如何根据其主机名，取得其IP地址呢？</p>
<p>一般情况下，配好了 hostname为xxx.test.com 的机器是自然可以这样得到IP地址的。</p>
<p>但如果不行的话，就有两种方案：</p>
<p>A. 通过nsupdate来使域内的DNS服务器更新自己的IP。</p>
<p>$ nsupdate<br />
&gt; update add xxx.test.com 9999 A 192.168.1.20<br />
&gt;<br />
&gt;quit</p>
<p>B. 注册自己在 WINS服务器上的名字。</p>
<p>这一项还没有找到现成程序，可能要自己编程解决。也许有吧，谁知道的留 言告诉我。</p>
<p>编程不麻烦，假设linux的IP是192.168.1.4 ，找一台windows，设IP为192.168.1.10</p>
<p>在linux上面运行命令</p>
<p>tcpdump -X -s 300 &#8220;src host 192.168.1.10&#8243;</p>
<p>然后在 win上，把wins服务器设为 192.168.1.4</p>
<p>这样,win就会去linux注册自己，看到相应的二进制包，仿照着就可以开始开发了。</p>
<p>当然要开发，光有二进制包还不行，可以参照着 rfc1002 先把包弄懂。rfc1001也可先看看。</p>
<p>弄懂后，写个程序就易于反掌了！</p>
<p> </p>
<p>顺便说一下，在dns上注册名字后，windows 可能还不能马上ping到，ping会报告找不到名字。这是因为windows有缓存。可以用下面这条命令手动清掉windows的DNS缓存(DNS Cache)。</p>
<p>ipconfig /flushdns</p>
<p> </p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.swigger.net/archives/50.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian 修复记</title>
		<link>http://www.swigger.net/archives/46.html</link>
		<comments>http://www.swigger.net/archives/46.html#comments</comments>
		<pubDate>Sat, 02 Aug 2008 15:23:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.swigger.net/?p=46</guid>
		<description><![CDATA[家里用来装debian的电脑是一台很老的电脑，老到它有一个毛病，就是硬盘经常掉线。以前用windows是这样，现在拿它改装linux，当然，也是这样了。这不，掉了几次，debian坏了。 首先是修复文件系统，用光盘rescue启动,fsck.ext3 /dev/hda4，修复了一下，报了很多错，坏了一堆文件。 进去后又发现dpkg坏了，使得apt-get ,apt-cache等无法用，报 /var/lib/dpkg/status 错。网上找了下这个错，还真是一堆一堆的，有的人说用status-old复制回去，但不幸，这个文件一起坏了。 用recover, repair等找了一下，最终装于找到一个能修得的bash文件： http://tuxx-home.at/projects/restore-dpkg-status.sh 运行后会在tmp目录生成个新的status文件，换回去。 ＯＫ，然后又说　/var/lib/dpkg/available 坏了。靠，找了一下，这回好像没有修复的脚本了，找到一个说这样可以修复的： dpkg &#8211;clear-avail apt-get update 运行了一下，第一句把available 这个文件清空了，update完，还是０字节，被骗了，靠。 不过发现清空了之后，apt-get是可以用了。但是它也以为我装的很多包是没有装的状态。 只好再慢慢装回去了，反正是覆盖安装，不会多占空间。 比如运行apt-get install openssh-server 它就以为我没有装这个openssh，帮我重新装一下，这样处理了很多个包，后面还要慢慢处理一堆。碰到再说了。 最后查了一下，结合一直以来观察到的现象，感觉这台破电脑硬盘掉线的原因是电源问题，可能当电源带不动的时候硬件就歇菜了。过几天整个新电源试试。  ]]></description>
			<content:encoded><![CDATA[<p>家里用来装debian的电脑是一台很老的电脑，老到它有一个毛病，就是硬盘经常掉线。以前用windows是这样，现在拿它改装linux，当然，也是这样了。这不，掉了几次，debian坏了。</p>
<p>首先是修复文件系统，用光盘rescue启动,fsck.ext3 /dev/hda4，修复了一下，报了很多错，坏了一堆文件。</p>
<p>进去后又发现dpkg坏了，使得apt-get ,apt-cache等无法用，报 /var/lib/dpkg/status 错。网上找了下这个错，还真是一堆一堆的，有的人说用status-old复制回去，但不幸，这个文件一起坏了。</p>
<p>用recover, repair等找了一下，最终装于找到一个能修得的bash文件：</p>
<p><a href="http://tuxx-home.at/projects/restore-dpkg-status.sh">http://tuxx-home.at/projects/restore-dpkg-status.sh</a></p>
<p>运行后会在tmp目录生成个新的status文件，换回去。</p>
<p>ＯＫ，然后又说　/var/lib/dpkg/available 坏了。靠，找了一下，这回好像没有修复的脚本了，找到一个说这样可以修复的：</p>
<p>dpkg &#8211;clear-avail<br />
apt-get update</p>
<p>运行了一下，第一句把available 这个文件清空了，update完，还是０字节，被骗了，靠。</p>
<p>不过发现清空了之后，apt-get是可以用了。但是它也以为我装的很多包是没有装的状态。</p>
<p>只好再慢慢装回去了，反正是覆盖安装，不会多占空间。</p>
<p>比如运行apt-get install openssh-server</p>
<p>它就以为我没有装这个openssh，帮我重新装一下，这样处理了很多个包，后面还要慢慢处理一堆。碰到再说了。</p>
<p>最后查了一下，结合一直以来观察到的现象，感觉这台破电脑硬盘掉线的原因是电源问题，可能当电源带不动的时候硬件就歇菜了。过几天整个新电源试试。</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.swigger.net/archives/46.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
