<?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>米糊网</title>
	<atom:link href="http://e200.net/feed" rel="self" type="application/rss+xml" />
	<link>http://e200.net</link>
	<description>生活不能没有追求，不能没有目标</description>
	<lastBuildDate>Tue, 29 Nov 2011 07:41:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>最新翻墙教程：chrome+goagent翻墙</title>
		<link>http://e200.net/archives/399</link>
		<comments>http://e200.net/archives/399#comments</comments>
		<pubDate>Wed, 16 Nov 2011 07:49:00 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[goagent]]></category>
		<category><![CDATA[翻墙]]></category>

		<guid isPermaLink="false">http://e200.net/?p=399</guid>
		<description><![CDATA[开了tumblr后就想着要写篇翻墙教程，当时想法是只要你知道有墙的存在，即便完完全全在墙内，按照这个零基础教程也能完成翻墙教学，而且我这不会上传任何文件，所有资源均通过官方网站下载。 不幸的是，昨天发现tumblr疑似被墙了，至少我这上不去了（浙江网通），这篇放在墙外的翻墙教程多少显得有点尴尬，只能寄希望于传播了。 本教程主要涉及的工具为chrome+goagent 一、下载安装chrome，并注册gmail邮箱 1、google出的优秀浏览器，还没用上的速速下载。 http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html  2、注册一个gmail邮箱 这一步很关键，后续会多次用到你的gmail邮箱账号。 https://mail.google.com/mail?hl=zh-CN 二、运行“hosts自动更新程序” 1、用安装好的chrome打开网址： https://chrome.google.com/webstore/detail/bcomihljbnefaobillhnajpgompoelme?hl=zh-CN 点击右上角的“启动应用程序”，接受程序自动下载的以“.bat”结尾文件。 如果没有出现下载提示，在chrome里打开新标签页，浏览器正中下方选择“应用程序”，然后点击出现的“Hosts自动更新程序”图标，接受下载。 有时下载的网站不一定能访问，可以在这里直接点击下载脚本文件（这一步需要gmail账号）： https://sandbox.google.com/storage/fgqi/hosts/fgqi.bat 2、运行程序 双击下载好的脚本文件“fgqi.bat” 由于下述步骤要使用到早就被墙掉的google服务，这里需要先更改对应服务的hosts地址。 这一步我们需要更新google服务地址，输入数字“1”并回车。 题外话：输入数字“4”并回车后，能搞定twitter和facebook的基本访问。 三、在GAE里创建app Google App Engine是一个开发、托管网络应用程序的平台，使用Google管理的数据中心。 1、登陆申请网址（这一步需要gmail账号）： https://appengine.google.com/start/createapp 如果上述步骤需要验证手机，输入+86前缀的大陆手机号码后会收到短信，在“Mobile Number”栏里输入你收到短信里的验证码code即可完成验证步骤。 2、创建app 完成验证后界面如下： 在Application Identifier栏输入你要创建的app名称（不支持中文），点击“Check Availability”以确认你要的名称还未被注册过。 为了方便起见，这里用“chaofannet”借代你创建的app名称。（请自行创建，勿对号入座） 下一栏“Application Title” 随便填，后期也可以随便改。 完成后点击页面下方的“Create Application”，如果前面有出现“Terms of Service”即使用条款，则需要在点击“Create Application”前，把使用条款下方的“I accept these terms”打钩。 至此，app创建成功，得到的AppID即chaofannet（借代用）。 四、下载goagent goagent是一个使用Python和Google Appengine SDK编写的代理软件。 登陆goagent官网： https://code.google.com/p/goagent/ 主页最上方即给出了下载链接，可见目前最新版为1.6.3稳定版，下载链接为bit.ly短网址，若无法解析，这里给出解析后的完整下载网址，如下： http://nodeload.github.com/phus/goagent/zipball/1.0 [...]]]></description>
			<content:encoded><![CDATA[<h3><a style="font-size: 14px; font-weight: normal;" name="more"></a>开了tumblr后就想着要写篇翻墙教程，当时想法是只要你知道有墙的存在，即便完完全全在墙内，按照这个零基础教程也能完成翻墙教学，而且我这不会上传任何文件，所有资源均通过官方网站下载。</h3>
<div id="post-body-516646701622802459">
<div>不幸的是，昨天发现tumblr疑似被墙了，至少我这上不去了（浙江网通），这篇放在墙外的翻墙教程多少显得有点尴尬，只能寄希望于传播了。</div>
<p><span id="more-399"></span></p>
<div>本教程主要涉及的工具为chrome+goagent</div>
<div><strong>一、下载安装chrome，并注册gmail邮箱</strong></div>
<div>1、google出的优秀浏览器，还没用上的速速下载。</div>
<div><a href="http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html">http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html</a><strong> </strong></div>
<div>2、注册一个gmail邮箱</div>
<div>这一步很关键，后续会多次用到你的gmail邮箱账号。</div>
<div><a href="https://mail.google.com/mail?hl=zh-CN">https://mail.google.com/mail?hl=zh-CN</a></div>
<div><strong>二、运行“hosts自动更新程序”</strong></div>
<div>1、用安装好的chrome打开网址：</div>
<div><a href="https://chrome.google.com/webstore/detail/bcomihljbnefaobillhnajpgompoelme?hl=zh-CN">https://chrome.google.com/webstore/detail/bcomihljbnefaobillhnajpgompoelme?hl=zh-CN</a></div>
<div>点击右上角的“启动应用程序”，接受程序自动下载的以“.bat”结尾文件。</div>
<div>如果没有出现下载提示，在chrome里打开新标签页，浏览器正中下方选择“应用程序”，然后点击出现的“Hosts自动更新程序”图标，接受下载。</div>
<div>有时下载的网站不一定能访问，可以在这里直接点击下载脚本文件（这一步需要gmail账号）：</div>
<div><a href="https://sandbox.google.com/storage/fgqi/hosts/fgqi.bat">https://sandbox.google.com/storage/fgqi/hosts/fgqi.bat</a></div>
<div>2、运行程序</div>
<div>双击下载好的脚本文件“fgqi.bat”</div>
<div><img src="http://2.bp.blogspot.com/-DTOmaV1bhV0/Tq5QohHkARI/AAAAAAAAABQ/MySUsE8WfPU/s1600/image001.jpg" alt="" /></div>
<div>由于下述步骤要使用到早就被墙掉的google服务，这里需要先更改对应服务的hosts地址。</div>
<div>这一步我们需要更新google服务地址，输入数字“1”并回车。</div>
<div>题外话：输入数字“4”并回车后，能搞定twitter和facebook的基本访问。</div>
<div><strong>三、在GAE里创建app</strong></div>
<div>Google App Engine是一个开发、托管网络应用程序的平台，使用Google管理的数据中心。</div>
<div>1、登陆申请网址（这一步需要gmail账号）：</div>
<div><a href="https://appengine.google.com/start/createapp">https://appengine.google.com/start/createapp</a></div>
<div>如果上述步骤需要验证手机，输入+86前缀的大陆手机号码后会收到短信，在“Mobile Number”栏里输入你收到短信里的验证码code即可完成验证步骤。</div>
<div>2、创建app</div>
<div>完成验证后界面如下：</div>
<div><img src="http://1.bp.blogspot.com/-422JJfP6t10/Tq5Qr_3wxhI/AAAAAAAAABY/CBb_Hf_1fd0/s1600/image002.jpg" alt="" border="0" /></div>
<div>在Application Identifier栏输入你要创建的app名称（不支持中文），点击“Check Availability”以确认你要的名称还未被注册过。</div>
<div>为了方便起见，这里用“chaofannet”借代你创建的app名称。（请自行创建，勿对号入座）</div>
<div>下一栏“Application Title” 随便填，后期也可以随便改。</div>
<div>完成后点击页面下方的“Create Application”，如果前面有出现“Terms of Service”即使用条款，则需要在点击“Create Application”前，把使用条款下方的“I accept these terms”打钩。</div>
<div>至此，app创建成功，得到的AppID即chaofannet（借代用）。</div>
<div><strong>四、下载goagent</strong></div>
<div>goagent是一个使用Python和Google Appengine SDK编写的代理软件。</div>
<div>登陆goagent官网：</div>
<div><a href="https://code.google.com/p/goagent/">https://code.google.com/p/goagent/</a></div>
<div>主页最上方即给出了下载链接，可见目前最新版为1.6.3稳定版，下载链接为bit.ly短网址，若无法解析，这里给出解析后的完整下载网址，如下：</div>
<div><a href="http://nodeload.github.com/phus/goagent/zipball/1.0">http://nodeload.github.com/phus/goagent/zipball/1.0</a></div>
<div>下载后得到的压缩包为“phus-goagent-ed8e710.zip”（对应目前最新的1.6.3稳定版），解压后会得到两个文件夹：“local”和“server”.</div>
<div><strong>五、上传goagent服务端并配置客户端</strong></div>
<div>1、上传服务端</div>
<div>双击打开之前解压后的“server”文件夹，找到并双击运行“uploader.bat”</div>
<div>这时界面提示“AppID:”</div>
<div>输入之前你在Application Identifier栏创建的app名称，如chaofannet</div>
<div><img src="http://2.bp.blogspot.com/-zCuhqpVtuIc/Tq5Qs-ZWZsI/AAAAAAAAABg/q1IYaQ20PaI/s1600/image003.jpg" alt="" /></div>
<div>出现Email提示后输入你的gmail账号，然后是密码。</div>
<div>注意：输入密码时，屏幕上不会出现任何符号，请不用担心，完整正确地输入密码后按回车即可。</div>
<div>上传完毕后会自动关闭。</div>
<div>2、配置客户端</div>
<div>双击打开之前解压后的“local”文件夹，找到并双击打开“proxy.ini”文件，</div>
<div>修改[gae]栏下的appid，将等号后面的“goagent”换成你的AppID，如将原来的“appid = goagent”换成“appid = chaofannet”，其余保持不变。</div>
<div>至此，绝大部分工作已经完成。</div>
<div><strong>六、配置chrome</strong></div>
<div>在chrome下安装Proxy SwitchySharp插件：</div>
<div><a href="https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm">https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm</a></div>
<div>安装后打开Proxy SwitchySharp插件的选项：</div>
<div><img src="http://3.bp.blogspot.com/-8qzg09ycHaQ/Tq5Qtw4XfbI/AAAAAAAAABo/7-qd1yIi0Uw/s1600/image004.jpg" alt="" /></div>
<div>在“导入/导出”栏目的最下行，“在线恢复备份”栏输入：</div>
<div><a href="https://raw.github.com/phus/phus-config/master/SwitchyOptions.bak">https://raw.github.com/phus/phus-config/master/SwitchyOptions.bak</a></div>
<div>至此，大功告成。</div>
<div><strong>七、翻墙！</strong></div>
<div>1、运行goagent.exe</div>
<div>位于之前解压后的“local”文件夹下</div>
<div>注意：第一次运行可能需要管理员权限。</div>
<div>题外话：我们还可以设置goagent程序开机自启动，除了最原始的手动拖到系统启动栏下，运行“local”文件夹下的“addto-startup.vbs”文件即可。</div>
<div>2、代理翻墙</div>
<div>打开chrom，在右上角Proxy SwitchySharp插件上点击选择GoAgent，如下：</div>
<div><img src="http://3.bp.blogspot.com/-RjIDphTSFPQ/Tq5Qu8xVpUI/AAAAAAAAABw/xy4bVMiF8AA/s1600/image005.jpg" alt="" /></div>
<div>题外话：请无视我的“Telex”代理协议，和本文无关。</div>
<div>至此，已经挂上代理，可以随意浏览墙外世界。</div>
<div>要想换回自己的ip，只需选择上图中的“直接连接”，即不用代理，回归墙内。</div>
<div><strong>八、结束语</strong></div>
<div>Google App Engine并非毫无限制，每个开发者只能拥有10个应用程序，即你最多只能创建并得到10个AppID。（貌似AppID创建了就不能删除)</div>
<div>Google App Engine提供给免费用户的流量是每天1GB.一般应用绝对够了。</div>
<div>登陆<a href="https://appengine.google.com/">https://appengine.google.com/</a> 点击你创建的AppID，可以看到你的流量图，以及每天免费配额还剩多少，如下图，我已经用了1GB中的7%</div>
<div><img src="http://3.bp.blogspot.com/-_opAu0vnj1g/Tq5Qv4fwyvI/AAAAAAAAAB4/Tx8Bg2ASOHo/s1600/image006.jpg" alt="" /></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/399/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让IOU 连接真实网络</title>
		<link>http://e200.net/archives/384</link>
		<comments>http://e200.net/archives/384#comments</comments>
		<pubDate>Wed, 07 Sep 2011 16:26:24 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[IOU]]></category>
		<category><![CDATA[NETMAP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://e200.net/?p=384</guid>
		<description><![CDATA[在Ubuntu安装了IOU（从flyxj的虚拟机移植过来）之后，一直不知道如何让IOU连接真实网络，今天上网一路狂收总算有所收获，参见http://certcollection.org/forum/topic/85650-connect-iou-to-actual-interfaces-script/. 首先要在Ubuntu中安装python-libpcap， sudo apt-get install python-libpcap 通过ifconfig命令看看你电脑的网卡标识符是什么，比如我的以太网卡是eth0,无线网卡是wlan0，然后修改./LAB/IFMAP文件，如下： 1&#124;eth0 其中eth0是你要连接电脑的网卡。 最后修改./LAB/NETMAP文件，如下： 1:0/0 2:0/0 1:3/0 3:3/0 2:0/1 3:0/1 1:1/3 2:1/3 3:1/3 1023:1 主要看最后一行，1023:1代表的是你的电脑的网卡eth0，整句话的含义就是将router 1,2,3的以太网口1/3都连接在你电脑网卡的eth0上。 现在到router 1上配置一下e1/3的ip地址，可以设置与你电脑的eth0地址在一个网段，设置好以后你就可以ping通eth0了。]]></description>
			<content:encoded><![CDATA[<p>在Ubuntu安装了IOU（从flyxj的虚拟机移植过来）之后，一直不知道如何让IOU连接真实网络，今天上网一路狂收总算有所收获，参见<a href="http://certcollection.org/forum/topic/85650-connect-iou-to-actual-interfaces-script/">http://certcollection.org/forum/topic/85650-connect-iou-to-actual-interfaces-script/</a>.</p>
<p><span id="more-384"></span></p>
<p>首先要在Ubuntu中安装python-libpcap，</p>
<pre>sudo apt-get install python-libpcap</pre>
<p>通过ifconfig命令看看你电脑的网卡标识符是什么，比如我的以太网卡是eth0,无线网卡是wlan0，然后修改./LAB/IFMAP文件，如下：</p>
<pre>1|eth0</pre>
<p>其中eth0是你要连接电脑的网卡。</p>
<p>最后修改./LAB/NETMAP文件，如下：</p>
<pre>1:0/0 2:0/0
1:3/0 3:3/0
2:0/1 3:0/1
1:1/3 2:1/3 3:1/3 1023:1</pre>
<p>主要看最后一行，1023:1代表的是你的电脑的网卡eth0，整句话的含义就是将router 1,2,3的以太网口1/3都连接在你电脑网卡的eth0上。</p>
<p>现在到router 1上配置一下e1/3的ip地址，可以设置与你电脑的eth0地址在一个网段，设置好以后你就可以ping通eth0了。</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/384/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：Connect IOU with real networks or dynamips</title>
		<link>http://e200.net/archives/377</link>
		<comments>http://e200.net/archives/377#comments</comments>
		<pubDate>Wed, 07 Sep 2011 14:39:09 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Dynamips]]></category>
		<category><![CDATA[IOU]]></category>
		<category><![CDATA[NETMAP]]></category>

		<guid isPermaLink="false">http://e200.net/?p=377</guid>
		<description><![CDATA[转自：http://inetpro.org/wiki/Connect_IOU_with_real_networks_or_dynamips This guide provides explanations to a script called iou2net.pl (script is at the end of the article), which allows you to attach IOU instances to real network (interfaces). In its functionality, its similar to what the ioulive tool does. For more information about IOU or ioulive, ask your Cisco SE/AM that provided you with [...]]]></description>
			<content:encoded><![CDATA[<p>转自：<a href="http://inetpro.org/wiki/Connect_IOU_with_real_networks_or_dynamips">http://inetpro.org/wiki/Connect_IOU_with_real_networks_or_dynamips</a></p>
<p>This guide provides explanations to a script called iou2net.pl (script is at the end of the article), which allows you to attach IOU instances to real network (interfaces). In its functionality, its similar to what the ioulive tool does. For more information about IOU or ioulive, ask your Cisco SE/AM that provided you with your copy of IOU, or check out the IOU FAQ from evilrouters.net.<br />
<span id="more-377"></span><br />
Why another script that does nearly the same thing as ioulive? While playing around with IOU, i tried to come up with a way to attach IOU instances to dynamips directly. I managed to get this working for single instances, but came to the conclusion that its best to integrate such functionality in dynagen directly. Unfortunately, Im not a good programmer and have no experience with python, nor the time to dig through the dynagen sources and extend the code. This script is a byproduct of this work, where i tried to document the packet format that IOU uses to communicate between instances. For now, the script allows to attach to real network adapters and tap interfaces, and to communicate through UDP “links” as known from dynamips and qemu.<br />
<span class="Apple-style-span" style="font-weight: bold;"><strong>Contents</strong></span></p>
<pre>1 Installation
    1.1 Dependencies
2 Usage
    2.1 NETMAP
    2.2 Mode of operation / interfaces
      2.2.1 PCAP mode
      2.2.2 TAP mode
      2.2.3 UDP mode
    2.3 Other Options
      2.3.1 Packet Capture
      2.3.2 Logging and Debugging
3 Limitations
4 What works
5 IOU communication
    5.1 General
    5.2 IOU header
    5.3 Interface MAC addresses
6 Script</pre>
<h4><strong>Installation</strong></h4>
<p>The program is written in perl and can be copied directly from the source listing (end of the article) to a file. Make the file executeable with</p>
<pre>chmod +x ./iou2net.pl</pre>
<h5><strong>Dependencies</strong></h5>
<p>iou2net depends on some perl modules. Most of them should come with your default perl distribution. Best case, the extra installation of Net::Pcap should do the trick to satisfy dependencies. On Ubuntu and Debian systems, this is provided with the “libnet-pcap-perl” package. Of course, beside the perl package, you need libpcap too.</p>
<pre>sudo apt-get install libnet-pcap-perl libpcap0.8</pre>
<p>For systems that dont pack the perl module, use CPAN to install it:</p>
<pre>perl -MCPAN -e 'install Net::Pcap'</pre>
<p>Now try to start the script, it should start without any module warnings, printing the help screen:</p>
<pre>./iou2net.pl</pre>
<p>Other dependencies may arise if you do not have tunctl or brctl commands. You can resolve this with the following:</p>
<pre>sudo apt-get install uml-utilities bridge-utils</pre>
<h4><strong>Usage</strong></h4>
<h5><strong>NETMAP</strong></h5>
<p>iou2net will forward frames between a IOU instance and a (real) network adapter. IOU needs a special mapping in its NETMAP file. The interface of the IOU instance you want to forward from has to be listed as a source entry, with a “@&lt;hostname&gt;” suffix at the end. The destination of the mapping will be a pseudo IOU instance number, with a pseudo interface number. iou2net.pl will use this pseudo IOU instance ID to connect to the real IOU instance, and do its frame relaying.</p>
<p>Example NETMAP file:</p>
<pre>10:1/1				11:1/0
10:1/2				12:1/0
10:1/0@iou-test		        20:0/0@iou-test</pre>
<p>The first two mappings are normal connections between IOU instances at the same host (R10, 1/1 &lt;-&gt; R11, 1/0 and R10, 1/2 &lt;-&gt; R12, 1/0). The last one connects interface 1/0 of R10 to pseudo router (instance) 20, interface 0/0.</p>
<p>You can choose any ID (&lt;1024), as long as its not used by any real IOU instance. Specify this ID with the option “-p” when launching the script. Dont use this arbitrary ID for anything else in your mappings/topology. iou2net will need to read through this NETMAP file, to determine the correct mapping. By default, it looks in the current directory for the file NETMAP. If you want to use a file in a different directory (and/or with a different name), use the “-n” option.</p>
<h5><strong>Mode of operation / interfaces</strong></h5>
<p>You must specify where the frames should be forwarded to/received from. The script can operate in either of the 3 modes:</p>
<ul>
<li>PCAP (-i), attaching to real network interfaces</li>
<li>TAP (-t), for a Layer 2 point-to-point connection to a tapX interface</li>
<li>UDP (-u), sending and receving frames over UDP links as seen in dynamips and qemu</li>
</ul>
<p>At least pcap and tap mode require super user privileges, so run the script with sudo.</p>
<h6><strong>PCAP mode</strong></h6>
<p>PCAP mode is the preferred method when dealing with traffic from real network interfaces. Just specify the real network interface with the -i option. iou2net.pl will put this interface into promiscuous mode.</p>
<pre>$ sudo ./iou2net.pl -i eth0 -p 20</pre>
<h6><strong>TAP mode</strong></h6>
<p>This is a point-to-point interface type, usually found in Linux and *BSD (tap is for L2, tun is for L3 connections). Its useful especially in bridging configurations. Specify the tap interface with the -t option (full name, like “tap3&#8243;). If the tap interface does not exist already, the script will create it for you.</p>
<pre>$ sudo ./iou2net.pl -t tap0 -p 99</pre>
<p>In any case, you are responsible to bring the tap interface “up”. If desired, you also need to deal with further bridging configuration.</p>
<p>For example, the following setup allows IOU to talk to the local machine and to communicate with the real network attached to eth0. A bridge br0 is created, bridging traffic between eth0 and tap0. Traffic from the host itself lands on br0 and gets forwarded to the bridge member interfaces accordingly.</p>
<pre>tunctl -t tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
brctl addbr br0
brctl stp br0 off
brctl setfd br0 1
brctl sethello br0 1
brctl addif br0 eth0
brctl addif br0 tap0
ifconfig br0 &lt;your host ip settings&gt;
(launch IOU)
iou2net.pl -t tap0 -p 111</pre>
<h6><strong>UDP mode</strong></h6>
<p>For communication with other programs that provide UDP connectors (like dynamips NIO_udp), use this mode. The argument -u requires a port mapping format. It can be just “source-port:remote-port” for links that are local to the host that runs both applications.</p>
<p>It also can be of “source-port:remote-host:remote-port”, if communication between applications on different hosts, across a network, is desired. remote-host must be an IP address or a resolveable hostname/FQDN.</p>
<pre>$ sudo ./iou2net.pl -u 23001:192.0.2.20:23000 -p 12</pre>
<p>Note that the port scheme is always as seen by IOU. In the remote application, you have to specify the ports in reverse meaning – spt:23000 and dpt:23001 from the example above.</p>
<h5><strong>Other Options</strong></h5>
<h6><strong>Packet Capture</strong></h6>
<p>With -f &lt;capture file&gt;, the script will write any frame received by IOU and the external connector to a capture file. This file can be opened by wireshark/tshark, even if the script is still running. If the file already exists, it will be overwritten without any warning.</p>
<h6><strong>Logging and Debugging</strong></h6>
<p>Mainly for troubleshooting purposes, the switches -v and -d will turn on chitchat mode. -v will provide some information during the setup phase of the script. When setup is done and the script is ready to do frame forwarding, no further messages will appear.</p>
<p>-d will do the same as -v, but print the frame header of any received and sent frame during runtime.</p>
<h4><strong>Limitations</strong></h4>
<ul>
<li>This is only tested with Linux so far. Im sure it will run at other modern Unices, too. From perl perspective, porting this to windows is a possible, yet a pointless approach, because there is no IO_W_ (afaik).</li>
<li>The script focusses on Ethernet connectivity. Bridging together Serial interfaces works for udp links. The packet capture and the debug output are not useable without additional translation, because the interpretation of the header format is not aware of serial encapsulation protocols.</li>
<li>With the current implementation, TAP mode will not work on *BSD</li>
<li>For the NETMAP mapping line that is related with iou2net.pl pseudo ID, you must use id:x/y interface notation and not the “compressed” id:z format. Its just a matter of implementation in the script, im too lazy to add this.</li>
<li>There is not much sanity checking. The last occurence of a line that contains the pseudo ID as a destination is used, no matter how many other mappings with this ID exist before in the NETMAP file. These are typos anyway (see next limitation).</li>
<li>A single instance of this script will handle one IOU &lt;-&gt; network mapping. If you, for example, have multiple NICs in your systems and therefore want multiple IOU interfaces to be forwarded, you must launch multiple instances of the script. Every mapping must get a unique pseudo ID as the destination, and every instance of the script must be started by adding this unique ID.</li>
</ul>
<p>Example:</p>
<pre>$ cat NETMAP</pre>
<pre>10:1/0@iou-test		20:0/0@iou-test
10:1/1@iou-test		21:0/0@iou-test
11:1/0@iou-test		22:0/0@iou-test
[...]

$ sudo ./iou2net.pl -i eth0 -p 20 &amp;
[...]
$ sudo ./iou2net.pl -i eth1 -p 21 &amp;
[...]
$ sudo ./iou2net.pl -u 12001:12000 -p 22 &amp;
[...]</pre>
<ul>
<li>Run all your IOU instances as the same user, otherwise you end up with different “netio” subdirectories in /tmp, and your IOU instances cannot talk to each other. The script needs to know the real uid of the user, therefore you should invoke iou2net.pl with sudo, from the same user that runs the IOU instances.</li>
</ul>
<h4>What works</h4>
<p>I’ve done some quick tests with a local IOU instance, one Ethernet interface bridged to a real network where a c1841 is located</p>
<ul>
<li>Basic communication at layer 2 and 3 (Ethernet), up to MTU of 1500</li>
<li>OSPF adjacency over Broadcast segment (multicast)</li>
<li>ISIS adjacency</li>
<li>LDP adjacency</li>
<li>MPLS encapsulation over Ethernet (@1500 byte [MPLS] MTU, no baby giant/jumbo frame support)</li>
<li>IPv6 auto discovery</li>
<li>various connectivity tests toward v4 and v6 Internet</li>
<li>attaching IOU to dynamips</li>
<li>using a bridge configuration on Linux with tap interfaces, to talk to the host that serves IOU</li>
<li>communication between dynamips and IOU running at different hosts, with UDP connectors</li>
</ul>
<h4>IOU communication</h4>
<h5>General</h5>
<p>In this chapter, i will outline the packet format and methods IOU uses when communicating outside of an IOU instance.</p>
<p>Inter-instance communication is done through UNIX domain sockets. These are created in the subdirectory “/tmp/netio&lt;uid&gt;”, with a numeric filename that corresponds to &lt;instance ID&gt;. You can sniff this traffic with strace, like</p>
<pre>$ strace -e sendto,recvfrom -xx -o capturefile.txt &lt;your IOU command line&gt;</pre>
<h5>IOU header</h5>
<p>When sending frames, IOU will submit the entire L2 frame, prepended with a IOU proprietary header. This header is required at the receiving instance, to make the distinction to which local interface the frame is destined to. This is important, because the sockets are per instance (router) and have no way to decide to which internal interface to forward to (whithout extra logic that looks at MAC addresses etc.).</p>
<p>Furthermore, IOU does sanity checks with this header. When receiving a frame, the source information (sending ID, sending interface) is checked against the mappings that were read from the NETMAP file. It is not possible to send frames to an instance with valid destination ID and interface numbers and faked/unknown source information; the source ID and interface numbers have to match also.</p>
<p>The header format is described in the script. I cannot say if the last two bytes are really a delimiter that is always 0×0100, or if these fields serve a different purpose.</p>
<p>The script walks through the NETMAP file and determines the correct mapping, extracts the source IOU instance ID and its interface numbers. As discussed above, this is important for constructing the IOU header. Then it creates a socket $iou_pseudo_sock for out IOU pseudo ID (the destination), the real IOU instance (the source) will send its frames to this socket. This socket will be read- and writeable by anyone, since this script runs as root, where you usually run IOU as a normal user. Furthermore, we bind to the socket of the source IOU instance ($iou_router_sock). The IOU header that is used when sending frames to the real IOU instance is now prebuild, all the required information is available. Next, the mode of operation is determined and sender/receiver logic is invoked.</p>
<p>For every frame sent by the source IOU instance, we strip off the first 8 bytes (the IOU header), and transmit the frame.</p>
<p>When receiving a frame from the external network, the precomputed IOU header will be prepended, and the resulting frame is sent to the socket of the source IOU instance.</p>
<h5>[<a href="http://inetpro.org/wiki/index.php?title=Connect_IOU_with_real_networks_or_dynamips&amp;action=edit&amp;section=17">edit</a>]Interface MAC addresses</h5>
<p>IOU uses self-gererated MAC addresses for its interfaces. If an interface maps only to other IOU instances at the local host, it will have an OID of AA:BB:CC. Whether communication is internal or not is determined through the mappings in the NETMAP file. Any mapping that does not have a “@…” suffix is considered internal.</p>
<p>For interfaces that require external communication – mappings that have a “@…” suffix in the NETMAP file – a different interface MAC address is generated by IOU. The format is documented in the script. The script caclulates the MAC address of the source IOU instance and its interface, to generate a capture filter in PCAP mode. Because the real network interface card is put into promiscuous mode, this filter ensures that only useful traffic is seen by IOU (unicasts destined to its MAC, broadcasts, multicasts).</p>
<p>This MAC addresses generation has another implication. If you run the same IOU instance ID at different hosts, and you bridge the same interfaces together, you end up with duplicated MAC addresses (assuming both users running IOU use the same UID). Even if you use different IOU interfaces for external bridging, you may end up with odd results, because IOU may consider the MAC from the remote instance to be local (same IOU instance ID). Therefore, make IOU instance IDs unique across all your installations.</p>
<h4>Script</h4>
<pre>#!/usr/bin/perl

use strict;
use warnings;
use Getopt::Long;
use Net::Pcap;
use IO::Select;
use IO::Socket;
use IO::File;
use Time::HiRes qw(gettimeofday);

my $version      = "v0.4";
my $version_date = "22-Apr-2011";

###################################################################################
# CHANGES
# =======
#
# v0.4, 22-Apr-2011
# -----------------
# - for frame read, switched from fork to select
# - added bridging via udp links and tap interfaces
# - encoding issues hopefully fixed
# - more sane construction of IOU header and MAC address
# - verbose output
# - packet trace output (MAC headers)
# - writing traffic to pcap file
#
# v0.31, 28-Jan-2011
# -----------------
# - MAC address is now in "ether" format (bytes separated with ":") for building
#   the capture filter
#
# v0.3, 27-Jan-2011
# -----------------
# - better capture filter handling, after understanding how IOU generates
#   MAC addresses (related code is still ugly)
# - hostnames with hyphen are now accepted
#
# v0.21, 26-Jan-2011
# -----------------
# - changed socket_base handling after receiving hint that "1000" is the uid
#   that IOU is started with</pre>
<p>&nbsp;</p>
<pre>#
# v0.2, 24-Jan-2011
# -----------------
# - added pcap filter to allow for better performance on busy nics
#
# v0.1, 23-Jan-2011
# -----------------
# - first release
#
###################################################################################

my $help = &lt;&lt;EOF;

iou2net.pl: bridge between iou and real networks (IOUlive replacement)

usage:
iou2net.pl 	[-vd] [-f capture file] [-i interface]  [-n netmapfile]
		[-p instance ID] [-t interface] [-u portmap]

NOTE:	-&gt; You _must_ launch IOU before starting this script.
	-&gt; -i, -t  or -u, and -p are required as a bare minimum.
	-&gt; Most operation require super user privileges; use sudo or run as
	   root.

-v
	Optional, provides verbose output

-d
	Optional, provides debug output (verbose + prints frame headers)

-f
	optional, write frames to a capture file that can be opened with
	wireshark

-i interface (PCAP mode)
	Specify the interface you want to bridge to. This makes the script
	to run in PCAP mode.

-n NETMAP file
	Optional. Per default, the script tries to open ./NETMAP. If you
	want to use a NETMAP file located elsewhere, use this argument.

-p instance ID
	IOU requires a pseudo instance. When bridging your IOU router
	interface, specify an unused ID as the target in your NETMAP file,
	like

	1:2/1\@hostname    666:1/0\@hostname

	666 is the pseudo IOU instance ID, hostname is the host where IOU
	and the script runs at. When starting the script, use -p 666 then.
	After launching the IOU router instance #1, use interface 2/1 for
	external connectivity. The Interface 1/0 at the pseudo instance
	does not have any practical meaning for router configuration.

-t interface (TAP mode)
	Specify the tap interface you want to attach to. This makes the script
	to run in TAP mode. If the interface does not exist, the script will
	create it, otherwise it will attach to it. You are responsible to
	have the interface in an "up" state and for any additional bridging
	that may be required.

-u portmap (UDP mode)
	Will establish communication through UDP links (dynamips, qemu).
	Portmap has the following format:

	(1) source-port:dest-port	or
	(2) source-port:remote_host:dest-port

	The first variant is used for UDP communication at the local host
	only (target runs at the same host).
	The second variant allows to communicate with a target that runs at
	a remote system. &lt;remote_host&gt; must be an IP address or a resolveable
	hostname/FQDN.
	Port numbers are always from a local (IOU) perspective, therefore
	they are the reverse of what gets defined at the target system.

CAVEATS: For now, you need to use x/y interface format in the NETMAP file, at
least for the mapping this script requires. Also, for bridging multiple router
interfaces, separate instances of this script must be launched, and you need
an unique pseudo IOU ID per instance.

EOF

my $err;
my $verbose;
my $debug;
my $pcap_recv_data;
my $iou_recv_data;
my $iou_header;
my $iface;
my $netmap_file = "./NETMAP";
my $netmap_handle;
my $uid;
my $socket_base;
my $iou_pseudo_sock;
my $iou_router_sock;
my $pseudo_instance;
my $pseudo_instance_interface_major;
my $pseudo_instance_interface_minor;
my $iou_instance;
my $iou_interface_major;
my $iou_interface_minor;
my $select_handle;
my $pcap;
my $pcap_filter;
my $udp_conn;
my $udp_shost;
my $udp_dhost;
my $udp_spt;
my $udp_dpt;
my $udp_listener;
my $tap;
my $tap_handle;
my $cap_file;
my $cap_handle;
my $cap_dumper;

GetOptions(
    'help' =&gt; sub { print "$help"; exit(0); },
    'v+'   =&gt; \$verbose,
    'd+'   =&gt; \$debug,
    'i=s'  =&gt; \$iface,
    'n=s'  =&gt; \$netmap_file,
    'p=i'  =&gt; \$pseudo_instance,
    'u=s'  =&gt; \$udp_conn,
    't=s'  =&gt; \$tap,
    'f=s'  =&gt; \$cap_file
);

print "iou2net.pl, Version $version, $version_date.\n";

die "\nPlease provide -i, -t or -u, and -p!\n$help"
  unless ( ( $iface || $udp_conn || $tap ) &amp;&amp; $pseudo_instance );

$verbose = 1 if $debug;

# socket directory is a directory below $TMPDIR (/tmp), composed of "netio" plus
# uid of the user that runs the iou binary
# since we assume this script gets invoked with sudo by most people:
# try to be smart about getting real UID, $&lt; does not (always?) return real uid when using sudo

$uid         = $ENV{SUDO_UID};
$uid         = $&lt; unless ( defined $uid );    # apparently not started with sudo
$socket_base = "/tmp/netio$uid";
print "UID: $uid\n"                           if $verbose;
print "Socket base directory: $socket_base\n" if $verbose;

open( netmap_handle, $netmap_file )
  or die "Can't open netmap file $netmap_file\n";

# walk through NETMAP file and try to determine the source IOU instance
while (&lt;netmap_handle&gt;) {

    # stop when there is a match for our pseudo instance ID as the destination
    next
      if !(
              $_ =~
m/^\d+:\d+\/\d+@[\w-]+[ \t]+$pseudo_instance:\d+\/\d+@[\w-]+(\s|\t)*$/
      );
    my $inputline = $_;
    chomp($inputline);

    print "Found valid mapping line in NETMAP: $inputline\n" if $verbose;

    # ignore any hostname statements
    $inputline =~ s/\@[\w-]+//g;

    my @connline = split( /[ \t]+/, $inputline );
    $connline[0] =~ s/(\s\t)*//g;
    $connline[1] =~ s/(\s\t)*//g;
    my @iou_src = split( /:/, $connline[0] );
    my @iou_dst = split( /:/, $connline[1] );
    $iou_instance = $iou_src[0];
    ( $iou_interface_major, $iou_interface_minor ) = split( /\//, $iou_src[1] );
    ( $pseudo_instance_interface_major, $pseudo_instance_interface_minor ) =
      split( /\//, $iou_dst[1] );
}
close(netmap_handle);
print
"Using pseudoinstance $pseudo_instance, interface $pseudo_instance_interface_major/$pseudo_instance_interface_minor\n"
  if $verbose;

die
"Could not find any valid mapping for IOU pseudo instance $pseudo_instance in NETMAP file"
  unless ( ( defined $iou_instance )
    &amp;&amp; ( defined $iou_interface_major )
    &amp;&amp; ( defined $iou_interface_minor )
    &amp;&amp; ( defined $pseudo_instance_interface_major )
    &amp;&amp; ( defined $pseudo_instance_interface_minor ) );

# unlink socket for IOU pseudo instance
unlink "$socket_base/$pseudo_instance";

# create socket for IOU pseudo instance
$iou_pseudo_sock = IO::Socket::UNIX-&gt;new(
    Type     =&gt; SOCK_DGRAM,
    Listen   =&gt; 5,
    Local    =&gt; "$socket_base/$pseudo_instance"
) or die "Can't create IOU pseudo socket\n";

# availability to read shall be queried through select()
$select_handle = IO::Select-&gt;new();
$select_handle-&gt;add($iou_pseudo_sock);

# allow anyone to read and write
chmod 0666, "$socket_base/$pseudo_instance";

print "Created pseudo IOU socket at $socket_base/$pseudo_instance\n"
  if $verbose;

# attach to real IOU instance
$iou_router_sock = IO::Socket::UNIX-&gt;new(
    Type =&gt; SOCK_DGRAM,
    Peer =&gt; "$socket_base/$iou_instance"
) or die "Can't connect to IOU socket at $socket_base/$iou_instance\n";
print "Attached to real IOU socket at $socket_base/$iou_instance\n" if $verbose;

# precompute IOU header
# IOU header format
# Pos (byte)    value
# ==============================================================
# 00 - 01       destination (receiving) IOU instance ID
# 02 - 03       source (sending) IOU instance ID
# 04            receiving interface ID
# 05            sending interface ID
# 06 - 07       fixed delimiter, looks like its always 0x01 0x00
#
#               interface ID = &lt;major int number&gt; + (&lt;minor int number&gt; * 16)

$iou_header = pack( "nnCCH4",
    $iou_instance,
    $pseudo_instance,
    ( $iou_interface_minor &lt;&lt; 4 ) | $iou_interface_major,
    ( $pseudo_instance_interface_minor &lt;&lt; 4 ) |
      $pseudo_instance_interface_major,
    "0100" );

print "Precomputed IOU Header: ", unpack( "H*", $iou_header ), "\n" if $verbose;

# provide a clean exit
$SIG{INT} = \&amp;caught_sigint;

# Open capture file
if ( defined $cap_file ) {
    $cap_handle = Net::Pcap::pcap_open_dead( DLT_EN10MB, 1500 );
    $cap_dumper = Net::Pcap::pcap_dump_open( $cap_handle, $cap_file )
      or die "Cant open capture file: $!";
    print "Opened file $cap_file for packet dump.\n" if $verbose;
}

# Determine Mode and setup sender and receiver logic
if ( defined $iface ) {
    print "Working in pcap mode.\n" if $verbose;

    # construction of IOU MAC address for external connectivity
    # Pos (byte)            value
    # ==============================================================
    # 0 (high nibble)       from IOU instance ID (2 bytes, only 10 bits used),
    #                       the two least significant bits from the high byte
    #                       are taken and shifted one bit left
    # 0 (low nibble)        always 0xE
    # 1 - 3                 UID of the user that runs the IOU instance
    # 4                     low byte of the IOU instance ID
    # 5                     interface ID
    #
    # for x64 systems, binary math works well, like
    # $mac = (((($iou_instance &amp; 0x0300) &lt;&lt; 1 ) &lt;&lt; 36 ) + 0xE0000000000 );
    # $mac += $uid &lt;&lt; 16;
    # $mac += ($iou_instance &amp; 0xFF) &lt;&lt; 8;
    # $mac += ($iou_interface_minor &lt;&lt; 4) + $iou_interface_major;

    my $macstring;
    $macstring = pack( "CH6CC",
        ( ( $iou_instance &gt;&gt; 7 &amp; 6 ) &lt;&lt; 8 ) + 0xE,
        unpack( "xH6", pack( "N", 0xFF000000 ^ $uid ) ),
        $iou_instance &amp; 0xFF,
        ( $iou_interface_minor &lt;&lt; 4 ) | $iou_interface_major );

    $macstring = uc( join( ":", unpack( "(H2)*", $macstring ) ) );

    print "Using MAC $macstring.\n" if $verbose;

    # bind to network interface, promiscuous mode
    $pcap = Net::Pcap::open_live( $iface, 1522, 1, 1, \$err );
    die "pcap: can't open device $iface: $err (are you root?)\n"
      unless ( defined $pcap );

    # build a capture filter for IOU interface MAC address
    # this will match only what is destined to $macstring, plus multicasts
    # and broadcasts
    Net::Pcap::compile( $pcap, \$pcap_filter,
        '(ether[0] &amp; 1 = 1) or (ether dst ' . $macstring . ')',
        0, 0xFFFFFFFF )
      &amp;&amp; die 'Unable to compile capture filter';
    Net::Pcap::setfilter( $pcap, $pcap_filter )
      &amp;&amp; die 'Unable to assign capture filter';
    print "Capture filter set: (ether[0] &amp; 1 = 1) or (ether dst '"
      . $macstring . "')\n"
      if $verbose;

    print
"Forwarding frames between interface $iface and IOU instance $iou_instance, int $iou_interface_major/$iou_interface_minor (MAC: $macstring) -  press ^C to exit\n";

    while (1) {

        if ( grep { $_ eq $iou_pseudo_sock } $select_handle-&gt;can_read(0.001) ) {

            # IOU frame received via pseudo ID socket
            $iou_pseudo_sock-&gt;recv( $iou_recv_data, 1522 );
            log_iou_frame( "R:I-&gt;P", $iou_recv_data ) if $debug;

            $iou_recv_data = unpack( "x8a*", $iou_recv_data );

            # send IOU generated frame to real network
            Net::Pcap::sendpacket( $pcap, $iou_recv_data );
            write_pcap_dump($iou_recv_data) if $cap_dumper;
            log_frame( "S:I-&gt;P", $iou_recv_data ) if $debug;
        }
        else {

            my %pcap_hdr;
            my $return =
              Net::Pcap::pcap_next_ex( $pcap, \%pcap_hdr, \$pcap_recv_data );
            if ( $return eq 1 ) {
                write_pcap_dump($pcap_recv_data) if $cap_dumper;
                log_frame( "R:P-&gt;I", $pcap_recv_data ) if $debug;

                # add IOU header in front of the received frame
                # and send frame to IOU socket
                $iou_router_sock-&gt;send(
                    pack( "a*a*", $iou_header, $pcap_recv_data ) );
                log_iou_frame( "S:P-&gt;I",
                    pack( "a*a*", $iou_header, $pcap_recv_data ) )
                  if $debug;

            }
        }
    }
}
elsif ( defined $udp_conn ) {

    # accept localport:remotehost:remoteport, or localport:remoteport
    if ( $udp_conn =~ m/^\d+:\d+$/ ) {
        ( $udp_spt, $udp_dpt ) = split( /:/, $udp_conn );
        $udp_shost = $udp_dhost = "127.0.0.1";
    }
    elsif ( $udp_conn =~ m/^\d+:[\w\.]+:\d+$/ ) {
        ( $udp_spt, $udp_dhost, $udp_dpt ) = split( /:/, $udp_conn );
        $udp_shost = "";
    }
    else {
        die "UDP port format doesnt match";
    }

    print "Working in UDP mode.\n" if $verbose;

    # bind to udp port
    $udp_listener = IO::Socket::INET-&gt;new(
        Proto     =&gt; "udp",
        LocalPort =&gt; $udp_spt,
        LocalAddr =&gt; $udp_shost,
        PeerPort  =&gt; $udp_dpt,
        PeerAddr  =&gt; $udp_dhost
    ) or die "Can't bind to UDP port.\n";

    print
"Forwarding frames between UDP ports local:$udp_spt, $udp_dhost:$udp_dpt and IOU instance $iou_instance, int $iou_interface_major/$iou_interface_minor -  press ^C to exit\n";

    $select_handle-&gt;add($udp_listener);

    while (1) {
        my ($readable) =
          IO::Select-&gt;select( $select_handle, undef, undef, 0.001 );

        foreach my $socket (@$readable) {
            if ( $socket == $iou_pseudo_sock ) {

                # IOU frame received via pseudo ID socket
                $iou_pseudo_sock-&gt;recv( $iou_recv_data, 1522 );
                log_iou_frame( "R:I-&gt;U", $iou_recv_data ) if $debug;

                $iou_recv_data = unpack( "x8a*", $iou_recv_data );

                # send IOU generated frame via udp
                $udp_listener-&gt;send($iou_recv_data);
                write_pcap_dump($iou_recv_data) if $cap_dumper;
                log_frame( "S:I-&gt;U", $iou_recv_data ) if $debug;
            }
            else {
                $udp_listener-&gt;recv( $iou_recv_data, 1522 );
                write_pcap_dump($iou_recv_data) if $cap_dumper;
                log_frame( "R:U-&gt;I", $iou_recv_data ) if $debug;

                $iou_router_sock-&gt;send(
                    pack( "a*a*", $iou_header, $iou_recv_data ) );
                log_iou_frame( "S:U-&gt;I",
                    pack( "a*a*", $iou_header, $iou_recv_data ) )
                  if $debug;
            }
        }
    }
}
elsif ( defined $tap ) {

    print "Working in TAP mode.\n" if $verbose;

    # get file handle
    $tap_handle = IO::File-&gt;new( "/dev/net/tun", O_RDWR )
      or die "Cannot open /dev/net/tun";

    # make it tap (not tun)
    my $ifr = pack( 'Z16s', $tap, 0x1002 );
    ioctl $tap_handle, 0x400454ca, $ifr
      or die "Can't ioctl() on device $tap: $!";

    print
"Forwarding frames between TAP interface $tap and IOU instance $iou_instance, int $iou_interface_major/$iou_interface_minor -  press ^C to exit\n";

    $select_handle-&gt;add($tap_handle);

    while (1) {
        my ($readable) =
          IO::Select-&gt;select( $select_handle, undef, undef, 0.001 );

        foreach my $socket (@$readable) {
            if ( $socket == $iou_pseudo_sock ) {

                # IOU frame received via pseudo ID socket
                $iou_pseudo_sock-&gt;recv( $iou_recv_data, 1522 );
                log_iou_frame( "R:I-&gt;T", $iou_recv_data ) if $debug;

                $iou_recv_data = unpack( "x8a*", $iou_recv_data );

                # send IOU generated frame via udp
                $tap_handle-&gt;syswrite($iou_recv_data);

                write_pcap_dump($iou_recv_data) if $cap_dumper;
                log_frame( "S:I-&gt;T", $iou_recv_data ) if $debug;
            }
            else {
                $tap_handle-&gt;sysread( $iou_recv_data, 1522 );
                write_pcap_dump($iou_recv_data) if $cap_dumper;
                log_frame( "R:T-&gt;I", $iou_recv_data ) if $debug;

                $iou_router_sock-&gt;send(
                    pack( "a*a*", $iou_header, $iou_recv_data ) );
                log_iou_frame( "S:T-&gt;I",
                    pack( "a*a*", $iou_header, $iou_recv_data ) )
                  if $debug;
            }
        }
    }

}
else {

    # catchall, we really shouldnt land here
    print "No valid mode of operation selected.\n\n$help";
    caught_sigint();
}

sub caught_sigint {
    print "\n...stopped.\n";
    print "Cleaning up.\n";
    $select_handle-&gt;remove( $select_handle-&gt;handles );

    if ( defined $pcap ) {
        Net::Pcap::breakloop($pcap);
        Net::Pcap::close($pcap);
        print "Closed pcap receiver loop.\n" if $verbose;
    }
    if ( defined $udp_listener ) {
        $udp_listener-&gt;close;
        print "Closed udp listener.\n" if $verbose;
    }
    if ($tap_handle) {
        $tap_handle-&gt;close;
        print "Closed tap handle.\n" if $verbose;
    }
    if ($cap_handle) {
        Net::Pcap::pcap_dump_flush($cap_dumper);
        Net::Pcap::pcap_dump_close($cap_dumper);
        print "Closed dump file.\n" if $verbose;
    }

    $iou_pseudo_sock-&gt;close;
    $iou_router_sock-&gt;close;

    exit(0);
}

sub log_frame {
    my ( $direction, $frame ) = @_;
    return if ( length($frame) &lt; 14 );

    # Print direction, source mac, destination mac and ethertype
    print "$direction                      S ",
      join( ":", unpack( "x6(H2)6", $frame ) ),
      " D ",
      join( ":", unpack( "(H2)6", $frame ) ),
      " T ",
      unpack( "x12H4", $frame ),
      "\n";
}

sub log_iou_frame {
    my ( $direction, $frame ) = @_;
    return if ( length($frame) &lt; 22 );

    # Print direction, IOU header, source mac, destination mac and ethertype
    print "$direction IOU ",
      unpack( "H16", $frame ),
      " S ",
      join( ":", unpack( "x14(H2)6", $frame ) ),
      " D ",
      join( ":", unpack( "x8(H2)6", $frame ) ),
      " T ",
      unpack( "x20H4", $frame ),
      "\n";
}

sub write_pcap_dump {
    my $frame = shift @_;
    my %header;
    $header{len} = $header{caplen} = length($frame);
    ( $header{tv_sec}, $header{tv_usec} ) = gettimeofday();
    Net::Pcap::pcap_dump( $cap_dumper, \%header, $frame );
    Net::Pcap::pcap_dump_flush($cap_dumper);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/377/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转载：Cisco IOU迁移至RHEL 6.1</title>
		<link>http://e200.net/archives/372</link>
		<comments>http://e200.net/archives/372#comments</comments>
		<pubDate>Wed, 07 Sep 2011 14:05:24 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Dynamips]]></category>
		<category><![CDATA[IOU]]></category>
		<category><![CDATA[NETMAP]]></category>

		<guid isPermaLink="false">http://e200.net/?p=372</guid>
		<description><![CDATA[听说IOU可以比Dynamips节省CPU资源，马上谷歌搜取大量教程、软件，首先在VMware下尝试了一下，启了6台路由器、4台交换机，CPU运行依然平稳，果然比Dynamips运行的爽多了，我可是在X60s上运行的，马上想到移植到Ubuntu 11.04，教程内方法有效，移植比较顺利，特此收藏！ 文章转自：http://wesleyou.blog.51cto.com/3189109/591931 一、     IOU简介 Cisco IOU （Cisco IOS On Unix），IOU基于unix/linux环境，比之GNS3、小凡都要节省不少系统资源。 IOU包括以下文件： i86bi_linux-adventerprisek9-ms                  // 带有IOS高级特性的IOU i86bi_linux-ipbase-ms                          // 带有基本的IP路由功能的IOU i86bi_linux-tpgen+ipbase-ms.PAGENT.4.7.0         // 带有基本的IP路由功能和流量生成工具的IOU i86bi_linuxl2-upk9-ms.M                       // 带layer 2功能的IOU， iourc                                       // license文件 NETMAP                                     // topology文件 wrapper-linux                                // IOU的管理控制器   二、     IOU的使用方法 1.   wrapper-linux的使用： ./wrapper-linux [-v] –m&#60;image name&#62; -p&#60;port number&#62; &#8212; &#60;iou options&#62; &#60;router id&#62; where &#60;port number&#62; is in the range &#60;1024-65550&#62; all options after the ‘&#8211;’ are passed to iou [-v] : display [...]]]></description>
			<content:encoded><![CDATA[<p>听说IOU可以比Dynamips节省CPU资源，马上谷歌搜取大量教程、软件，首先在VMware下尝试了一下，启了6台路由器、4台交换机，CPU运行依然平稳，果然比Dynamips运行的爽多了，我可是在X60s上运行的，马上想到移植到Ubuntu 11.04，教程内方法有效，移植比较顺利，特此收藏！<br />
文章转自：<a href="http://wesleyou.blog.51cto.com/3189109/591931">http://wesleyou.blog.51cto.com/3189109/591931</a></p>
<p><span id="more-372"></span><br />
<strong>一、     </strong><strong>IOU</strong><strong>简介</strong></p>
<p>Cisco IOU （Cisco IOS On Unix），IOU基于unix/linux环境，比之GNS3、小凡都要节省不少系统资源。</p>
<p>IOU包括以下文件：</p>
<p>i86bi_linux-adventerprisek9-ms                  // 带有IOS高级特性的IOU</p>
<p>i86bi_linux-ipbase-ms                          // 带有基本的IP路由功能的IOU</p>
<p>i86bi_linux-tpgen+ipbase-ms.PAGENT.4.7.0         // 带有基本的IP路由功能和流量生成工具的IOU</p>
<p>i86bi_linuxl2-upk9-ms.M                       // 带layer 2功能的IOU，</p>
<p>iourc                                       // license文件</p>
<p>NETMAP                                     // topology文件</p>
<p>wrapper-linux                                // IOU的管理控制器</p>
<p><span style="font-family: Batang;"> </span></p>
<p><strong>二、     </strong><strong>IOU</strong><strong>的使用方法</strong></p>
<ol>
<li><strong>1.   </strong><strong>wrapper-linux</strong><strong>的使用：</strong></li>
</ol>
<p>./wrapper-linux [-v] –m&lt;image name&gt; -p&lt;port number&gt; &#8212; &lt;iou options&gt; &lt;router id&gt;</p>
<p>where &lt;port number&gt; is in the range &lt;1024-65550&gt;</p>
<p>all options after the ‘&#8211;’ are passed to iou</p>
<p>[-v] : display version;</p>
<p>-m：指定IOU镜像</p>
<p>-p：指定用于telnet的端口，范围是1024-65550；</p>
<p>&#8211;：用于传递iou的参数。</p>
<p>&nbsp;</p>
<ol>
<li><strong>2.   </strong><strong> IOU</strong><strong>用法：</strong></li>
</ol>
<p>以i86bi开头的文件都能使用一下参数</p>
<p>Usage:&lt;image&gt; [options] &lt;application&gt; id</p>
<p>&lt;image&gt;: unix-js-m | unix-is-m | unix-i-m | …</p>
<p>&lt;application id&gt;: instance identifier (0 &lt; id &lt;= 1024)</p>
<p>Options:</p>
<p>-e &lt;n&gt;     number of Ethernet interface (default 2)  // 指定etherne的模块数量</p>
<p>-s &lt;n&gt;     number of Serial interface (default 2)    // 指定serial的模块数量</p>
<p>-n &lt;n&gt;     Size of nvram in kb (default 16kb)    // 指定nvram的大小，默认16kb</p>
<p>-b &lt;string&gt;  IOS debug string</p>
<p>-c &lt;name&gt;  Configureation file name</p>
<p>-d          Generate debug information</p>
<p>-t          Netio message trace</p>
<p>-q          Supperss informational messages</p>
<p>-h          Display this help</p>
<p>-C         Turn off use of the host clock</p>
<p>-m &lt;n&gt;     Megabytes of router memory (default 128MB)  // 指定路由器的内存，默认128M。</p>
<p>-L         Disable local console,use remote console  // 关闭本地console，开启远程console。</p>
<p>-u&lt;n&gt;      UDP port base for distributed networks   // 基于分布式网络的UDP端口。</p>
<p>-R         Ignore options from the IOURC file     // 忽略IOURC文件</p>
<p>-U         Disable unix: file system location</p>
<p>-W         Dsiable watchdog timer</p>
<p>-N         Ingnore the NETMAP file             // 忽略NETMAP文件</p>
<p>&nbsp;</p>
<p><strong>IOU</strong><strong>举例：</strong></p>
<p>./ i86bi_linux-adventerprisek9-ms  -p 2000 &#8211;  -e 4 –s 4 1</p>
<p>-e 4  // 配置4个Ethernet接口模块，每个模块4个接口，0-3；</p>
<p>-s 4  // 配置4个serial 接口模块，每个模块4个接口，0-3；</p>
<p>1  // 路由器的进程名</p>
<p>Serial为Ethernet+1</p>
<p>在此列中：</p>
<p>Ethernet 16个，e0/0 &#8212;- e3/3；</p>
<p>Serial 16个， s4/0 &#8212;- s7/3。</p>
<p>&nbsp;</p>
<p><strong>wrapper-linux</strong><strong>使用举例：</strong></p>
<p>./wrapper-linux –m  ./ i86bi_linux-adventerprisek9-ms  -p 2000  &#8211;  -e 4 –s 4 1  &amp;</p>
<p><span style="font-family: Batang;"> </span></p>
<p><strong>三、     </strong><strong>用NETMAP建立网络拓扑</strong></p>
<p><strong>NETMAP</strong><strong>文件的书写格式：</strong></p>
<p>路由器实例名：插槽号/该插槽上的接口号</p>
<p><strong> </strong><strong>分布式书写格式：</strong></p>
<p>路由器实例名：插槽号/该插槽上的接口号@IP_Add | Hostname</p>
<p>&nbsp;</p>
<p><strong>NETMAP</strong><strong>实例：</strong></p>
<p>1:0/0  2:0/0</p>
<p>1:0/1  3:0/0</p>
<p>1:0/2  4:0/0</p>
<p>1:4/0@192.168.1.1 2:4/0@192.168.1.2</p>
<p>1:4/1@wesley.org  3:4/1@linux.com</p>
<p>&nbsp;</p>
<p>解析：1:0/0表示第一台路由器ethernet接口，第一个模块的第一个接口，即 e0/0；</p>
<p>1:4/0 表示第一台路由器serial接口，第一个模块的第一个接口，即s4/0。</p>
<p>&nbsp;</p>
<p><strong>四、     </strong><strong>迁移&amp;互通</strong></p>
<p>网上很多IOU基本都是使用cdlinux或者andlinux作为载体的，不是很方便更改top，局限性比较大，况且自己动手丰衣足食嘛。</p>
<p>系统环境：VMware WorkStation 7.14</p>
<p>Red Hat Enterprise Linux 6.1</p>
<p>*Python-2.6</p>
<p>Openssl-0.9.8</p>
<p>IOU文件：L3&amp;L2 IOU</p>
<p>（NETMAP、iourc 、i86bi_linux-adventerprisek9-ms、i86bi_linuxl2-upk9-ms.M 、wrapper-linux、crack.py（破解L2IOU&lt;达人作品，不知何人！&gt;））</p>
<p>&nbsp;</p>
<p><strong>  1</strong><strong>、迁移</strong></p>
<p><strong>  &gt;&gt;&gt;</strong><strong>在RHEL 6.1的root下创建目录：</strong></p>
<p>[root@wesleyou ~]#mkdir cisco_iou</p>
<p>&gt;&gt;&gt;copy IOU文件至cisoc_iou目录：</p>
<p>[root@wesleyou cisco_iou]#cp i86b*  wrap-linux NETMAP iourc cisco_iou</p>
<p><strong>  *&gt;&gt;&gt;</strong><strong>编译安装python-2.6：</strong></p>
<p>[root@wesleyou python2.6]#./configure</p>
<p>[root@wesleyou python2.6]#make &amp; make install</p>
<p>[root@wesleyou python2.6]#make clean</p>
<p><strong>*&gt;&gt;&gt;</strong><strong>添加PATH：</strong></p>
<p>[root@wesleyou python2.6]#export PATH=/usr/local/bin/python2.6:$PATH</p>
<p>注：带*的是指如果服务器python低于2.6的情况下，当然除此之外还有yum、rpm等方法。</p>
<p><strong>&gt;&gt;&gt;</strong><strong>安装openssl：</strong></p>
<p>[root@wesleyou python2.6]# cd ~</p>
<p>[root@wesleyou ~]# rpm –ivh openssl-0.9.8-*.rpm</p>
<p><strong>&gt;&gt;&gt;</strong><strong>连接lib库</strong></p>
<p>[root@wesleyou ~]# ln –s /usr/lib/libcrypto.so.0.9.8e libcrypto.so.4</p>
<p>注：./wrapper-linux 会调用这个库文件，如果没有就会报错。在这很感谢撒加大神提供的解决思路和方法。</p>
<p><strong>  &gt;&gt;&gt;</strong><strong>设置IOU运行级别</strong></p>
<p>[root@wesleyou cisco_iou]# chmod 777 *       // 偷懒的做法</p>
<p><strong>     &gt;&gt;&gt;</strong><strong>破解license</strong></p>
<p>[root@wesleyou cisco_iou]# python ./crack.py</p>
<p>&nbsp;</p>
<p>注：此处很重要，该程序是为了获取license，L3&amp;L2 IOU都能使用。此程序为互联网上流出，何人所写，不清楚，感谢作者的无私奉献。</p>
<p><strong>     &gt;&gt;&gt;</strong><strong>修改iourc</strong></p>
<p>[root@wesleyou cisco_iou]# vi iourc</p>
<p>&nbsp;</p>
<p>License格式：</p>
<p>hostname  = license_number;</p>
<p>准备工作基本上都做完了，至此可以测试一下L3&amp;L2 IOU。测试命令参见上文。</p>
<p>&nbsp;</p>
<p><strong>  2</strong><strong>、搭建拓扑</strong></p>
<p><strong>   </strong></p>
<p>说明：路由器使用L3IOU来模拟，而交换机则都通过L2IOU来模拟，至于PC可以使用L3IOU或者L2IOU皆可。</p>
<p>&nbsp;</p>
<p><strong>    &gt;&gt;&gt;</strong><strong>创建一个放置拓扑文件和启动脚本的目录：</strong></p>
<p>[root@wesley cisco_ou]# mkdir lab01</p>
<p>[root@wesley cisco_ou]# mv NETMAP lab01</p>
<p>[root@wesley cisco_ou]# cd lab01</p>
<p>&nbsp;</p>
<p><strong>&gt;&gt;&gt;</strong><strong>创建拓扑文件</strong></p>
<p>[root@wesley lab01]# vi NETMAP</p>
<p># ! /bin/bash</p>
<p># written by wesley</p>
<p># date:2011/6/17</p>
<p>1:0/0  2:0/0</p>
<p>1:0/1  3:0/0</p>
<p>2:0/1  4:0/0</p>
<p>3:0/1  4:0/1</p>
<p>3:0/2  4:0/2</p>
<p>3:0/3  5:0/0</p>
<p>4:03  6:0/0</p>
<p>&nbsp;</p>
<p><strong>&gt;&gt;&gt;</strong><strong>创建启动脚本：</strong></p>
<p>[root@wesley lab01]# vi start</p>
<p>&nbsp;</p>
<p># !/bin/bash</p>
<p># written by Wesley</p>
<p># and thanks for 撒加、flyxj、残泪、棕鹰、骁鹰&#8230;</p>
<p># anyone who is help me to improve !!!</p>
<p>&nbsp;</p>
<p>export  NETMAP=../lab01/NETMAP           // 设置NEMAP的变量，将其添加至环境中</p>
<p>port=2000                                 // 设置端口变量</p>
<p>for ((i=1;i&lt;7;i++));do</p>
<p>dport=‘expr $port + $i’</p>
<p>../wrapper-linux –m ./ i86bi_linux-adventerprisek9-ms –p $dport &#8212; -e 2 –s 2 –R –U $i &amp;</p>
<p>if (($i&gt;2));then</p>
<p>../wrapper-linux –m ./ i86bi_linuxl2-upk9-ms.M –p $dport &#8212; -e 4 –R –U　$i  &amp;</p>
<p>fi</p>
<p>sleep 2</p>
<p>done</p>
<p>unset NETMAP                       // 将NETMAP从环境变量中取消</p>
<p>&nbsp;</p>
<p><strong>     &gt;&gt;&gt;</strong><strong>创建关闭IOU的stop：</strong></p>
<p>[root@wesleyou cisco_iou]# vi stop</p>
<p>&nbsp;</p>
<p># ！/bin/bash</p>
<p># written by Wesley</p>
<p># and thanks for 撒加、flyxj、残泪、棕鹰、骁鹰&#8230;</p>
<p># anyone who is help me to improve !!!</p>
<p>&nbsp;</p>
<p>kill –HUP ` ps –a | grep wrapper-linux | awk ‘{print $1}’`    // 退出IOU</p>
<p>&nbsp;</p>
<p>注：很多朋友都用的killall，但是我发现使用killall后并不能得到完全释放，当想再次试验的时候会提示地址已被使用。</p>
<p>&nbsp;</p>
<p>最后再次感谢撒加大神、flyxj，残泪、骁鹰、棕鹰等网友的帮助，还要感谢我的领导spy在linux方面对我的指导。</p>
<p>另：恭喜flyxj一次pass IE。</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/372/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS-DOS 30岁啦</title>
		<link>http://e200.net/archives/366</link>
		<comments>http://e200.net/archives/366#comments</comments>
		<pubDate>Fri, 29 Jul 2011 09:21:38 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://e200.net/?p=366</guid>
		<description><![CDATA[想不到吧，MS-DOS都已经三十了，这个东东于1981年7月27日诞生，至今已经整整30岁了。想当年我也曾经拥有这样的5寸软盘，现在想起来还真是唏嘘。 你偶尔还会用MS-DOS吧？在XP/Win7下，他叫cmd。现在除了技术人员，一般人也最多在重装系统时见到这个东东吧，哦还有 ping 网站啥的。 尽管现在图形界面已经横行，不过还是怀念当年对着单色显示器敲着键盘通宵打游戏的感觉。  包括当年的经典游戏，俄罗斯方块、战斧、三国演义、Doom等等，还记得94年左右小谭同学花了1800元买了一批国外的游戏软件，寄来的是20~30张5寸软盘，那在当年绝对是有钱人的行为，令人羡慕啊。 &#160; MSDOS wiki 1980年，西雅图電腦产品公司（Seattle Computer Products）的一名24岁的程序员蒂姆·帕特森（Tim Paterson）花费了四个月时间编写出了86-DOS操作系统。1981年7月，微软以五萬美元的代價向西雅图公司购得本產品的全部版权，并将它更名为MS-DOS。它成功地成为IBM PC采用的操作系统。 西雅图電腦产品公司后来曾将微软告上法庭，指控微软在购买86-DOS版权时，并未透露IBM是其客户。微软在1986年向西雅图计算机产品公司又支付了100万美元，了结了双方之间的纠纷。]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-363" title="MS-DOS Floppy Disk" src="http://e200.net/files/2011/07/8295_o-251x300.jpg" alt="5寸软盘" width="251" height="300" /><br />
想不到吧，MS-DOS都已经三十了，这个东东于1981年7月27日诞生，至今已经整整30岁了。想当年我也曾经拥有这样的5寸软盘，现在想起来还真是唏嘘。</p>
<p>你偶尔还会用<a title="查看 MS-DOS 的全部文章" href="http://mkv.cn/tag/ms-dos" target="_blank">MS-DOS</a>吧？在XP/Win7下，他叫cmd。现在除了技术人员，一般人也最多在重装系统时见到这个东东吧，哦还有 ping 网站啥的。</p>
<p>尽管现在图形界面已经横行，不过还是怀念当年对着单色显示器敲着键盘通宵打游戏的感觉。  包括当年的经典游戏，俄罗斯方块、战斧、三国演义、Doom等等，还记得94年左右小谭同学花了1800元买了一批国外的游戏软件，寄来的是20~30张5寸软盘，那在当年绝对是有钱人的行为，令人羡慕啊。<br />
<span id="more-366"></span><br />
&nbsp;</p>
<p>MSDOS wiki</p>
<p style="padding-left: 30px;">1980年，西雅图電腦产品公司（Seattle Computer Products）的一名24岁的程序员蒂姆·帕特森（Tim Paterson）花费了四个月时间编写出了86-DOS操作系统。1981年7月，微软以五萬美元的代價向西雅图公司购得本產品的全部版权，并将它更名为<a title="查看 MS-DOS 的全部文章" href="http://mkv.cn/tag/ms-dos" target="_blank">MS-DOS</a>。它成功地成为IBM PC采用的操作系统。</p>
<p style="padding-left: 30px;">西雅图電腦产品公司后来曾将微软告上法庭，指控微软在购买86-DOS版权时，并未透露IBM是其客户。微软在1986年向西雅图计算机产品公司又支付了100万美元，了结了双方之间的纠纷。</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/366/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：全球50大美食 北京烤鸭排老五</title>
		<link>http://e200.net/archives/357</link>
		<comments>http://e200.net/archives/357#comments</comments>
		<pubDate>Fri, 29 Jul 2011 07:26:50 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[札记]]></category>

		<guid isPermaLink="false">http://e200.net/?p=357</guid>
		<description><![CDATA[确实没有想到，全球票选的50大美食，中华美食竟然只有北京烤鸭排第五。 ==== 有些美食光是想想就让人垂涎欲滴，值得奔走全球各地去品尝解馋。美国有线新闻网（CNN）旗下的旅游网站CNNGo搜罗了全球各地的食物，今晨评选出全球50大美食排行榜。 其中，泰国的马沙文咖喱荣登首位，而意大利的那不勒斯比萨和墨西哥的巧克力紧随其后。 饮食文化深厚的中国也有三种美食挤进了这份美食佳肴的名单。其中，世界闻名的北京烤鸭位列第5。此外，在中西贯通的香港地区，特色蛋挞和西多士（French Toast）也成功入围了全球50大美食，分列第16位和38位。 CNNGo网站这个榜单主要是依据网友在facebook上的投票选出的。 全球50大美食前十名 第一名：马沙文咖喱（泰国） 堪称食品之王的马沙文咖喱，将辛辣、香甜以及咸味融为一体，其香味极具特色，就算是从超市购买的马沙文咖喱，也能炮制出“米其林餐厅”美食的滋味 第二名：那不勒斯比萨（意大利） 说到最好吃的比萨，无论是过去还是现在，这个美名都是属于那不勒斯比萨的。坚持使用海盐、高档面粉以及三种类型的西红柿等简单原料制作的比萨，却能成为每个人都喜爱的食品 第三名：巧克力（墨西哥） 有人会因为忘情地吃太多巧克力而自责，但若没有了它，情人节就只剩下卡片和鲜花了 第四名：寿司（日本） 日本创造了丰田、索尼、任天堂等世界众多知名的大品牌，而日本人创建这些品牌的灵感就像用生鱼和大米制造美食一样不简单 第五名：北京烤鸭（中国） 北京烤鸭吸引食家的秘密是其甜美而有光泽的脆皮，用薄饼皮夹着来吃，配以葱段和甜面酱，令人“爱不释口” 第六名：汉堡（德国） 第七名：槟榔屿亚参叻沙（汤）（马来西亚） 第八名：冬荫功（汤）（泰国） 第九名：冰激凌（美国） 第十名：Chicken muamba（一种以鸡肉为主料的菜）（加蓬）]]></description>
			<content:encoded><![CDATA[<p>确实没有想到，全球票选的50大美食，中华美食竟然只有北京烤鸭排第五。<br />
====<br />
有些美食光是想想就让人垂涎欲滴，值得奔走全球各地去品尝解馋。美国有线新闻网（CNN）旗下的旅游网站CNNGo搜罗了全球各地的食物，今晨评选出全球50大美食排行榜。</p>
<p>其中，泰国的马沙文咖喱荣登首位，而意大利的那不勒斯比萨和墨西哥的巧克力紧随其后。</p>
<p>饮食文化深厚的中国也有三种美食挤进了这份美食佳肴的名单。其中，世界闻名的北京烤鸭位列第5。此外，在中西贯通的香港地区，特色蛋挞和西多士（French Toast）也成功入围了全球50大美食，分列第16位和38位。<br />
<span id="more-357"></span><br />
CNNGo网站这个榜单主要是依据网友在facebook上的投票选出的。</p>
<p>全球50大美食前十名</p>
<p>第一名：马沙文咖喱（泰国）</p>
<p>堪称食品之王的马沙文咖喱，将辛辣、香甜以及咸味融为一体，其香味极具特色，就算是从超市购买的马沙文咖喱，也能炮制出“米其林餐厅”美食的滋味</p>
<p>第二名：那不勒斯比萨（意大利）</p>
<p>说到最好吃的比萨，无论是过去还是现在，这个美名都是属于那不勒斯比萨的。坚持使用海盐、高档面粉以及三种类型的西红柿等简单原料制作的比萨，却能成为每个人都喜爱的食品</p>
<p>第三名：巧克力（墨西哥）</p>
<p>有人会因为忘情地吃太多巧克力而自责，但若没有了它，情人节就只剩下卡片和鲜花了</p>
<p>第四名：寿司（日本）</p>
<p>日本创造了丰田、索尼、任天堂等世界众多知名的大品牌，而日本人创建这些品牌的灵感就像用生鱼和大米制造美食一样不简单</p>
<p>第五名：北京烤鸭（中国）</p>
<p>北京烤鸭吸引食家的秘密是其甜美而有光泽的脆皮，用薄饼皮夹着来吃，配以葱段和甜面酱，令人“爱不释口”</p>
<p>第六名：汉堡（德国）</p>
<p>第七名：槟榔屿亚参叻沙（汤）（马来西亚）</p>
<p>第八名：冬荫功（汤）（泰国）</p>
<p>第九名：冰激凌（美国）</p>
<p>第十名：Chicken muamba（一种以鸡肉为主料的菜）（加蓬）</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/357/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：我们一定要用茅于轼交的税款去建航空母舰</title>
		<link>http://e200.net/archives/350</link>
		<comments>http://e200.net/archives/350#comments</comments>
		<pubDate>Fri, 27 May 2011 08:46:39 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[札记]]></category>
		<category><![CDATA[航空母舰]]></category>
		<category><![CDATA[茅于轼]]></category>

		<guid isPermaLink="false">http://e200.net/?p=350</guid>
		<description><![CDATA[今天读到国内所谓知名经济学家茅于轼先生《不要拿我交的税款去建航空母舰天》一文，对文中的观点我深不以为然。]]></description>
			<content:encoded><![CDATA[<p>读了这篇文章，深觉得骂的过瘾，特转载分享。转自：倍可亲，http://news.backchina.com/viewnews-143033-gb2312.html</p>
<p>今天读到国内所谓知名经济学家茅于轼先生《不要拿我交的税款去建航空母舰天》一文，对文中的观点我深不以为然。<br />
<span id="more-350"></span><br />
　所谓天下兴亡，匹夫有责，矛先生在文中所体现的智力觉悟，实在是匹夫不如，其不如有二：</p>
<p>　　一、常识不如。与世无争，莫过于乞丐，但乞丐讨饭也要准备一根打狗棒，仁慈宽厚莫过于佛祖，可佛祖也要有金刚护法。仁义道德，莫过于孔子，但孔子相鲁会齐，乃携兵戈前往。 孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。兵者,国之大事——既有国，必有兵，这是常识，也是一部中国近代史用血泪凝成的教训：满清政府、民国政府国贫兵弱，屈辱接踵，不足道也，中国人无辜受戮，血流成河，前车之鉴，令人感伤。茅先生在文中说，中国建航空母舰是因为：中国人的确比过去富了，大家都很想耀武扬威一下，这是一种弱智的污蔑—— 如果你茅先生如果去南京倾听每年都要在大屠杀纪念日敲响的警钟，在那个时刻，你茅先生真敢对南京市民和大屠杀纪念碑说这样的话吗？不，相信你没有这个胆量，加强国防力量，是南京大屠杀幸存者的合乎常识的正当要求，是南京大屠杀死者的合乎常识的正当要求，是全体中国人民的合乎常识的正当要求——绝对不是要向谁耀武扬威。</p>
<p>　　二、智力不如。茅先生在文中竟然会提出这样的观点：“凭中国现在在世界上的地位和实力，提出裁军是能够让全世界认真对待的。美国总统奥巴马也是一位有新思想的领导人。中美合作带头均衡裁军，是一个千载难逢的机会，千万不要轻轻放过了。”作为一个国际政治观察家，看到这样的话，开始无语，接下来忍不住捶胸顿足——茅先生，你是一个经济学家呀，经济学中最基本的研究对象是什么？是交换。交换的基本的常识是什么？是等值，这也是适用于国际政治生活的一条定理。承蒙茅先生谬奖，中国现在在世界上的地位和实力确实有那么一点点成就，但如果说要让中美合作带头均衡裁军，那是不可能的，因为这违背了矛先生所从事的经济学领域中最基本的经济学常识：等值交换。要与美国谈判裁军，就需要中国裁一点，美国裁一点，双方进行等值交换，可是，中国拿什么去与美国进行等值交换？先说飞机，要如矛先生所说的均衡裁军，中国裁减歼-10，美国就需要裁减F-22，或者是F-35，再说核武器，中国目前有几百枚核武器，美国有上万枚，那么，要如矛先生所说的均衡裁军，中国裁减一枚核武器，美国就必须裁减几十枚才能均衡。这种买卖就如同用一公斤银子去交换一公斤金子。我要问矛先生，在经济学领域，会有这样的买卖吗？也许会有，比如常常见诸于报端的经济诈骗。可是，美国总统奥巴马虽然是一位有新思想的领导人，但看上去并不傻，至少比矛先生要聪明得多，现实得多，我们中国人实在没有把握能够完成这样一桩伟大的裁军诈骗案。实际上，虽然美国近年来不断炒作中国的军事实力的提升，可是，从来没有提出过要跟中国进行裁军谈判，他们就连做梦也没想过，为什么？就因为那一条等值交换的经济学常识，我们确实没有可以同美国进行裁军交换的本钱，中国的军备水平差美国实在是差得太远，没有资格同美国谈论裁军。俄罗斯可以同美国谈判核裁军，谈判导弹削减，那也是遵循了最基本的经济学常识：等值交换，俄罗斯人有这个本钱，有这个资格。我不知道矛先生经济学家的头衔是怎样炼成的，也许经济学界并不太需要了解经济学常识，只需要一些文字造诣或假慈悲吧。但在国际政治领域，你的这一套是行不通的，为什么？这是由经济学常识所决定的。</p>
<p>　　总之，矛先生文中的观点都是扯淡。至于是文章的标题，“不要拿我交的税款去建航空母舰天”，是可以理解的，但却是不能接受的。你矛先生作为中国公民，当然有权力过问你所交的税款干什么用了，也可以表达不同意见，但究竟该作什么用，只能由公众利益来决定。这就如同这几天吵得沸沸扬扬的药家鑫杀人案，药家鑫作为公民当然有权力对法庭的一审判决要杀他的头表达不同意见，他甚至还可以提出上诉，并为保住自己的头提出种种理由进行辩护，但是，二审判决还是要杀他的头——绝对不可能说他不想被杀头就不杀他的头，为了公众利益，必须杀他的头。同样的道理，你矛先生不想国家拿你交交的税款去建航空母舰，也提出了种种理由，但为了中国的国防利益，你交的税款如果用在了修建航空母舰上，你也无权干涉。</p>
<p>　　考虑到矛先生对中国国防事业不能容忍的漠视态度，我认为，应该把他交的税款单独列出来，全部投入到航空母舰的建设之中。</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/350/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：刘志军留下的高铁遗产</title>
		<link>http://e200.net/archives/346</link>
		<comments>http://e200.net/archives/346#comments</comments>
		<pubDate>Thu, 24 Feb 2011 05:58:37 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[札记]]></category>
		<category><![CDATA[中国高铁]]></category>
		<category><![CDATA[刘志军]]></category>

		<guid isPermaLink="false">http://e200.net/?p=346</guid>
		<description><![CDATA[最近一直关注高铁股票，所以关注相关新闻，摘抄于此借鉴。 作者：英国《金融时报》中文网专栏作家 加藤嘉一 　　我初到中国的时候，刘志军刚刚当上中国铁道部长。八年来，我无数次乘坐中国火车到各地旅行，既坐过又脏又乱的普通列车，也坐过现代化的“和谐号”，将来肯定还会坐世界领先的京沪高铁。不过，中国高铁之父刘志军却没有机会以铁道部长的身份看到京沪高铁的开通了。 　　根据报道，他因在铁路建设中的“严重违纪行为”而落马下台，有永远出不来的可能。一直对中国高铁寄予高度关注，也确实没少加以表扬的世界媒体，在这个爆炸性的消息面前多少有些震惊。不过，作为新干线旁边长大的日本人，我倒觉得此事不值得大惊小怪，它只是把日本的某段历史重演了一下而已。正如《国际歌》的第四段歌词，“矿井和铁路的帝王，在神坛上奇丑无比”，中国和日本都一样。 　　1955年，曾参加策划“九一八事变”的十河信二被任命为日本国有铁道总裁，相当于铁道部长。当时日本的铁路和火车全是战前留下来的旧货，其水平连印度的都远远不如。国际上，铁路界因为受到汽车和飞机的竞争而越来越边缘化，成为典型的夕阳产业。但是71岁的十河信二从一上台就决定建造一条新的高速铁路，把东京和大阪之间的路程从8小时减少到3小时。这条铁路将采用电力作为动力，两条铁轨之间的距离也与之前的标准完全不同，因此被称为“新干线”。此前日本不但没有建设过这样的铁路，连试验都没搞过。再加上根本没有人投资，从总工程师以下的日本国铁所有职员都不相信新干线的可行性。 　　但十河还是决定一意孤行，他上台的第一件事就是赶跑了铁路总工程师，任命自己的亲信岛秀雄接任。面对国会议员的质疑，十河一面辩护说“只是在进行原有铁路的改造工作”，一面利用媒体大作广告，最终争取到了新干线项目。后面的事情更为惊人，根据岛秀雄的设计方案，会计师计算出新干线需要3800亿当时的日元才能建成，远远超过日本的承受力，国会不可能通过预算。 　　十河则命令会计师做一份假账交上去，欺骗国会说只需要1900亿，而且有办法借到世界银行的贷款。世界银行本来明确禁止投资新干线这种试验性项目，但十河把国铁在其他项目上的开支挪用过来秘密用于新干线项目，让世行相信新干线的修建异常顺利，于是贷款顺利到手。新线于1959年开工建设，建到一半时资金就用完了。正好此时十河信二的任期已满，他对首相池田勇人说：好了，世界银行的钱都借了，你看着办吧。 　　十河的行为有严重违法嫌疑，池田当然知道。不过由于借了世行的巨款，日本的面子问题让他别无选择，于是只好从国库中拿出巨额资金用于新干线。在进行了 3800亿日元的投资后，世界上第一条高速铁路——从东京到大阪的“东海线”于1964年10月1日通车。已经79岁的十河没有出席通车仪式，因为他已于此前被赶下了台。他的新干线和特有的“光”号列车却从此成了与富士山并提的国家象征，70年代从日本寄往欧洲的圣诞贺卡上，有一半都印着新干线的照片。 　　1978年，邓小平坐上了“光”号列车，他评论说：“速度很快，就像推着我们跑一样，我们需要跑。”但他并没有在中国引进这种技术，因为日本铁路正在亏本运营。1987年日本国铁民营化改革时，国铁负债已经高达2270亿美元，负责铁路建设的国企“日本铁道建设公团”也欠了410亿美元，两个公司的总负债超过全国GDP的7%。不过，政府未必为此感到后悔，因为便捷的交通促进了经济的发展。目前，日本正在推动建设一条采用更先进的磁悬浮技术的“新新干线”，它将把东京到大阪的时间缩短到仅一个小时多一点。当然，5年建成新干线的奇迹是不会再有了，新新干线最早也要到2027年才能建成。 　　刘志军堪称中国的十河信二。2003年我第一次坐中国火车的时候，感到火车又脏又乱，十分落后，而且真正要坐车的时候总是买不到票，与新干线有几十年的差距。2006年青藏铁路通车，媒体上不断展开宣传，我才开始注意到铁路的变化。2007年发生了中日关系中的大事，日本川崎重工的E2高速列车克服中国“愤青”施加的强大压力，落户中国铁道，成为“和谐号”动车组CRH2型。按照媒体的宣传，“和谐号”都是由中国自行生产的，日方合作伙伴也没有表示反对。但我登上CRH2列车一看，发现洗脸盆上贴着塑胶纸，纸上写着“水”和“洗手液”。偷偷揭开，洗脸盆上原来的日文说明漏了出来，让我感到十分亲切。洗脸盆毕竟是一个简单的部件，从这个细节可以猜测，这列火车的国产化率不会很高。这个情况显然不是我一个人发现的，左派也把刘志军当做“汉奸”“买办”，把 CRH叫做“耻辱号”，指责刘不买中国研制的“中华之星”等高速列车而买日本货。现在刘倒台了，“乌有之乡”的左派们非常高兴。 　　川崎和西门子的股东们也有理由感到高兴。2004年中国引进第一批时速250公里的动车组之前，刘志军把全国铁路装备制造商召集到北京——铁道部保持了计划经济体制，这些人全是他的下属——并告诉他们，这次的谈判由我领导，你们谁敢跟外国人接触就不要干了。在谈判中，刘志军成功使供应商相信，自己手里将掌握全世界一半的铁路建设资金，能决定每一个的前途。 　　为了取得更多的订单，日本人、法国人、德国人和加拿大人在夏天的北京互相批斗，把几十年来互相搜集的情报提供给了铁道部，价格越降越低。最后，西门子公司的代表成了唯一不能与中方达成共识的人，而最终结果是——日法加三国各得一部分订单，德国人一点没有，于是西门子的代表回国后就遭到了解雇。三年后铁道部招标购买时速350公里的真正高速列车，西门子报出的价格竟比三年前的250公里列车还便宜，还承诺以8000万欧元的价格出售全车制造技术，这样刘志军就可以向媒体宣布“拥有自主知识产权”了。刘志军还按西门子出的价格买了川崎的车，也买了全套制造技术。 　　2010年7月，铁道部下属的工厂推出了中国第三代动车组CRH380，世界上最快的有轮子的火车。这种车又分ABCD四种型号，其中A型来自川崎，B型和C型出自西门子的技术。与前面两代，这种车理论上是中国自行研制出来的，川崎和西门子除了出售中国还不能自制的一些零件之外，不能获取任何收入。高铁的技术转让世界上有很多先例，但出现这样的结果却是从来没有过的。FT中文网已经发表了7篇分析和12篇专栏文章来讨论这一现象。 　　出人意料的是，川崎和西门子不但放弃了在中国起诉铁道部的努力，甚至当中国向国外销售CRH380的时候他们也不准备这样做。这不仅是因为双方已经签署过了技术转让协议，还因为中国对许多关键的技术进行了改造，比如说日本列车的车头是用许多块钢板拼起来的，中国则依靠上海郊区的一台世界最大的水压机直接压出来；中国还利用秦岭的风洞测试了车头受到的空气阻力，并对其形状进行了修改。更重要的问题是，中国修改后的设计允许山寨的列车比原型车运行的更快，因此即使告到美国、英国的法庭去，法庭也未必判中国侵权。 　　光是列车速度提高这一点还不足以使中国高铁受到太多关注，高铁的精髓还在路本身。其实中国早就决定在北京和上海之间修建高铁，只是在是否采用磁悬浮技术的问题上争论了二十年而已。刘志军绕开了问题，他既不建“高铁”也不提京沪线，而是利用每年春运人们抱怨买票难的时机，在其他地方开工修建所谓“客运专线”、“城际铁路”、“第二双线”，建造完了之后再宣布其为高铁。北京到广州的“客专”几乎建在一座从北京延伸到广州的没有弯曲的大桥上，CRH列车可以用380公里的速度跑完全程而无需减速，石家庄和太原之间的客专更是用一个隧道穿过了整座太行山。 　　相比之下，日本的“东海线”有许多转弯，列车必须减速才能通过，它的真实速度只有刘氏“客专”的一半多一点。刘的手法取得了奇迹般的成功，为数众多的反高铁派很少注意到客专和城际铁路的开工，只有在“高铁”二字出来的时候才会表达自己的观点，那时高铁已经接近通车，说什么都晚了。 　　“客专”本身才是中国优于日本和欧洲的地方，但它的代价是非常高昂的。刘氏客专在最便宜的地方也要7000万元才能造1公里，到了山区和地价高的地方，造价达到每公里1.3亿元以上。为了建设规划的1.8万公里客专，刘至少要两三万亿元的投资，而2004年的铁路投资仅有可怜的516亿。刘可能不太擅长作假帐，所以他把手头的所有项目集中起来，用老办法威胁银行——要么多借给我点，要么我就从别处借。2007年，刘在银行的支持下把投资增加到 2000亿元，但好戏还没开始。2008年经济危机爆发，中国政府提出了4万亿救市计划，刘的高铁蓝图获得中央认可，得到了1.5万亿额外支持。于是从 2009年开始，铁路投资超过了7000亿元，超过了军费，超过了刘上台前十五年的总和，刘终于实现了自己“控制世界上一半铁路投资”的预言。此时刘志军的谈判艺术又有了进步，他把钢铁公司和水泥公司的代表叫来投标，失败者不仅一份钱拿不到，还将无法再用火车运输自己的产品。 　　刘在8年里一共修建了1.8万公里铁路，相当于原有线路的四分之一，其中客专有7000公里。现在正在建设的铁路长度为3万公里，其中客专1.3万公里，大部分将在2011年通车。以后，从北京出发，8小时就能到除了海口、拉萨和乌鲁木齐之外的任何一个省会。由于已经开工，这些铁路没办法停下来，今年的铁路投资仍将达到历史最高的8500亿元。刘志军唯一没能开工建设的高铁是从兰州到乌鲁木齐的“兰新第二双线”。但就在昨天，哈萨克斯塔总统在北京签署了协议，由中方负责修建阿拉木图到阿斯塔纳的高铁。据说这条铁路将采用中国的标准，可以连新疆却不能连俄罗斯，这对中国的地缘政治意义很大，可能促使中方再花钱把兰新第二双线也修起来。未来，越南、蒙古和巴基斯坦也都有可能通过改造自己的铁路来加强与中国的联系，中国肯定会一一满足他们的要求。在“走出去”的过程中，铁道部还将得到更多的投资。 　　可惜的是，铁道部并没有像石油企业一样，把巨额投资用在改善员工的收入上。我做了这么多年火车，没见一个列车员说过领导的好话，大家都对低水平的工资非常不满。一位列车长对我说，他原来是首钢的职工，首钢搬走时为了离家近而调到了北京铁路局，现在的工资只有原来同事的四分之一。他认为，刘“跨越”—— 刘志军因为经常说铁路要实现“跨越式发展”而得的外号——眼里只有铁路，从不考虑职工的感受。在刘的领导下，铁路职工的生活水平降到了1923年二七大罢工以来的最低点，经常连续一两个月在列车上度过，连饭都吃不好。更糟糕的是，刘志军在人事上也是雄心壮志，说撤铁路分局就撤铁路分局，谁要是对领导不满意，就会马上失去体制内的铁饭碗。 　　“刘跨越”的政治生命结束了，铁路的难题却刚刚开始。铁道部和铁路网如何处理？在日本，新干线修建完成之后一直亏损，直到日本经济起飞后的八十年代才开始盈利，于是政府就在1987年对国有铁道实施了民营化改革。按经济规律说，中国铁路迟早也应该民营化。但刘志军造成的局面比十河信二要复杂得多，因为他的高铁网太超前，对经济规律缺乏尊重，难以实现盈利。 　　一个现实的问题是，如果中国的铁道部改制的话，改造出来的新铁道公司可以破产吗？如果它被禁止破产，那它就还是铁道部；如果可以破产，这个负债率为 70%的公司离破产就没多远了；如果把“坏的”资产拿走，只让“好的”资产上市，那中央政府通过银行借给铁道部的2万亿元资金就收不回来了。此外，铁道部还凭借着自己的“永远不会破产”的形象获得了大量商业银行投资，如果这个条件消失，投资的资金链也将断裂，政府可能需要花更多的钱来救市。在中国，欠人家两万元会带来很大的压力，欠两个亿就要轻松得多，欠两万亿根本就等于绑架了债主。接替刘志军的新部长，其实一点压力都不用有。 　　撤销铁道部还将面临政治上的挑战。日本国铁民营化运动的裁员人数是44万人，而且国铁本来就是企业，中国的铁道部则是政企合一的“铁道省”，拥有自己的警察、法庭和检察院，其职员们普遍认为自己不但不应该被裁员，反而应该为八年来的辛苦获得补偿。民营化，这一必然要经历的过程将带来社会的动荡，甚至可能发生那位列车长所想象的“全路大罢工”，或局部的混乱。中国准备好了走过这个痛苦的过程吗？ 　　或许，解除铁道部对中国的“绑架”，要比铁道部“绑架”中国困难十倍。]]></description>
			<content:encoded><![CDATA[<p>最近一直关注高铁股票，所以关注相关新闻，摘抄于此借鉴。</p>
<p>作者：英国《金融时报》中文网专栏作家 加藤嘉一</p>
<p>　　我初到中国的时候，刘志军刚刚当上中国铁道部长。八年来，我无数次乘坐中国火车到各地旅行，既坐过又脏又乱的普通列车，也坐过现代化的“和谐号”，将来肯定还会坐世界领先的京沪高铁。不过，中国高铁之父刘志军却没有机会以铁道部长的身份看到京沪高铁的开通了。<br />
<span id="more-346"></span><br />
　　根据报道，他因在铁路建设中的“严重违纪行为”而落马下台，有永远出不来的可能。一直对中国高铁寄予高度关注，也确实没少加以表扬的世界媒体，在这个爆炸性的消息面前多少有些震惊。不过，作为新干线旁边长大的日本人，我倒觉得此事不值得大惊小怪，它只是把日本的某段历史重演了一下而已。正如《国际歌》的第四段歌词，“矿井和铁路的帝王，在神坛上奇丑无比”，中国和日本都一样。</p>
<p>　　1955年，曾参加策划“九一八事变”的十河信二被任命为日本国有铁道总裁，相当于铁道部长。当时日本的铁路和火车全是战前留下来的旧货，其水平连印度的都远远不如。国际上，铁路界因为受到汽车和飞机的竞争而越来越边缘化，成为典型的夕阳产业。但是71岁的十河信二从一上台就决定建造一条新的高速铁路，把东京和大阪之间的路程从8小时减少到3小时。这条铁路将采用电力作为动力，两条铁轨之间的距离也与之前的标准完全不同，因此被称为“新干线”。此前日本不但没有建设过这样的铁路，连试验都没搞过。再加上根本没有人投资，从总工程师以下的日本国铁所有职员都不相信新干线的可行性。</p>
<p>　　但十河还是决定一意孤行，他上台的第一件事就是赶跑了铁路总工程师，任命自己的亲信岛秀雄接任。面对国会议员的质疑，十河一面辩护说“只是在进行原有铁路的改造工作”，一面利用媒体大作广告，最终争取到了新干线项目。后面的事情更为惊人，根据岛秀雄的设计方案，会计师计算出新干线需要3800亿当时的日元才能建成，远远超过日本的承受力，国会不可能通过预算。</p>
<p>　　十河则命令会计师做一份假账交上去，欺骗国会说只需要1900亿，而且有办法借到世界银行的贷款。世界银行本来明确禁止投资新干线这种试验性项目，但十河把国铁在其他项目上的开支挪用过来秘密用于新干线项目，让世行相信新干线的修建异常顺利，于是贷款顺利到手。新线于1959年开工建设，建到一半时资金就用完了。正好此时十河信二的任期已满，他对首相池田勇人说：好了，世界银行的钱都借了，你看着办吧。</p>
<p>　　十河的行为有严重违法嫌疑，池田当然知道。不过由于借了世行的巨款，日本的面子问题让他别无选择，于是只好从国库中拿出巨额资金用于新干线。在进行了 3800亿日元的投资后，世界上第一条高速铁路——从东京到大阪的“东海线”于1964年10月1日通车。已经79岁的十河没有出席通车仪式，因为他已于此前被赶下了台。他的新干线和特有的“光”号列车却从此成了与富士山并提的国家象征，70年代从日本寄往欧洲的圣诞贺卡上，有一半都印着新干线的照片。</p>
<p>　　1978年，邓小平坐上了“光”号列车，他评论说：“速度很快，就像推着我们跑一样，我们需要跑。”但他并没有在中国引进这种技术，因为日本铁路正在亏本运营。1987年日本国铁民营化改革时，国铁负债已经高达2270亿美元，负责铁路建设的国企“日本铁道建设公团”也欠了410亿美元，两个公司的总负债超过全国GDP的7%。不过，政府未必为此感到后悔，因为便捷的交通促进了经济的发展。目前，日本正在推动建设一条采用更先进的磁悬浮技术的“新新干线”，它将把东京到大阪的时间缩短到仅一个小时多一点。当然，5年建成新干线的奇迹是不会再有了，新新干线最早也要到2027年才能建成。</p>
<p>　　刘志军堪称中国的十河信二。2003年我第一次坐中国火车的时候，感到火车又脏又乱，十分落后，而且真正要坐车的时候总是买不到票，与新干线有几十年的差距。2006年青藏铁路通车，媒体上不断展开宣传，我才开始注意到铁路的变化。2007年发生了中日关系中的大事，日本川崎重工的E2高速列车克服中国“愤青”施加的强大压力，落户中国铁道，成为“和谐号”动车组CRH2型。按照媒体的宣传，“和谐号”都是由中国自行生产的，日方合作伙伴也没有表示反对。但我登上CRH2列车一看，发现洗脸盆上贴着塑胶纸，纸上写着“水”和“洗手液”。偷偷揭开，洗脸盆上原来的日文说明漏了出来，让我感到十分亲切。洗脸盆毕竟是一个简单的部件，从这个细节可以猜测，这列火车的国产化率不会很高。这个情况显然不是我一个人发现的，左派也把刘志军当做“汉奸”“买办”，把 CRH叫做“耻辱号”，指责刘不买中国研制的“中华之星”等高速列车而买日本货。现在刘倒台了，“乌有之乡”的左派们非常高兴。</p>
<p>　　川崎和西门子的股东们也有理由感到高兴。2004年中国引进第一批时速250公里的动车组之前，刘志军把全国铁路装备制造商召集到北京——铁道部保持了计划经济体制，这些人全是他的下属——并告诉他们，这次的谈判由我领导，你们谁敢跟外国人接触就不要干了。在谈判中，刘志军成功使供应商相信，自己手里将掌握全世界一半的铁路建设资金，能决定每一个的前途。</p>
<p>　　为了取得更多的订单，日本人、法国人、德国人和加拿大人在夏天的北京互相批斗，把几十年来互相搜集的情报提供给了铁道部，价格越降越低。最后，西门子公司的代表成了唯一不能与中方达成共识的人，而最终结果是——日法加三国各得一部分订单，德国人一点没有，于是西门子的代表回国后就遭到了解雇。三年后铁道部招标购买时速350公里的真正高速列车，西门子报出的价格竟比三年前的250公里列车还便宜，还承诺以8000万欧元的价格出售全车制造技术，这样刘志军就可以向媒体宣布“拥有自主知识产权”了。刘志军还按西门子出的价格买了川崎的车，也买了全套制造技术。</p>
<p>　　2010年7月，铁道部下属的工厂推出了中国第三代动车组CRH380，世界上最快的有轮子的火车。这种车又分ABCD四种型号，其中A型来自川崎，B型和C型出自西门子的技术。与前面两代，这种车理论上是中国自行研制出来的，川崎和西门子除了出售中国还不能自制的一些零件之外，不能获取任何收入。高铁的技术转让世界上有很多先例，但出现这样的结果却是从来没有过的。FT中文网已经发表了7篇分析和12篇专栏文章来讨论这一现象。</p>
<p>　　出人意料的是，川崎和西门子不但放弃了在中国起诉铁道部的努力，甚至当中国向国外销售CRH380的时候他们也不准备这样做。这不仅是因为双方已经签署过了技术转让协议，还因为中国对许多关键的技术进行了改造，比如说日本列车的车头是用许多块钢板拼起来的，中国则依靠上海郊区的一台世界最大的水压机直接压出来；中国还利用秦岭的风洞测试了车头受到的空气阻力，并对其形状进行了修改。更重要的问题是，中国修改后的设计允许山寨的列车比原型车运行的更快，因此即使告到美国、英国的法庭去，法庭也未必判中国侵权。</p>
<p>　　光是列车速度提高这一点还不足以使中国高铁受到太多关注，高铁的精髓还在路本身。其实中国早就决定在北京和上海之间修建高铁，只是在是否采用磁悬浮技术的问题上争论了二十年而已。刘志军绕开了问题，他既不建“高铁”也不提京沪线，而是利用每年春运人们抱怨买票难的时机，在其他地方开工修建所谓“客运专线”、“城际铁路”、“第二双线”，建造完了之后再宣布其为高铁。北京到广州的“客专”几乎建在一座从北京延伸到广州的没有弯曲的大桥上，CRH列车可以用380公里的速度跑完全程而无需减速，石家庄和太原之间的客专更是用一个隧道穿过了整座太行山。</p>
<p>　　相比之下，日本的“东海线”有许多转弯，列车必须减速才能通过，它的真实速度只有刘氏“客专”的一半多一点。刘的手法取得了奇迹般的成功，为数众多的反高铁派很少注意到客专和城际铁路的开工，只有在“高铁”二字出来的时候才会表达自己的观点，那时高铁已经接近通车，说什么都晚了。</p>
<p>　　“客专”本身才是中国优于日本和欧洲的地方，但它的代价是非常高昂的。刘氏客专在最便宜的地方也要7000万元才能造1公里，到了山区和地价高的地方，造价达到每公里1.3亿元以上。为了建设规划的1.8万公里客专，刘至少要两三万亿元的投资，而2004年的铁路投资仅有可怜的516亿。刘可能不太擅长作假帐，所以他把手头的所有项目集中起来，用老办法威胁银行——要么多借给我点，要么我就从别处借。2007年，刘在银行的支持下把投资增加到 2000亿元，但好戏还没开始。2008年经济危机爆发，中国政府提出了4万亿救市计划，刘的高铁蓝图获得中央认可，得到了1.5万亿额外支持。于是从 2009年开始，铁路投资超过了7000亿元，超过了军费，超过了刘上台前十五年的总和，刘终于实现了自己“控制世界上一半铁路投资”的预言。此时刘志军的谈判艺术又有了进步，他把钢铁公司和水泥公司的代表叫来投标，失败者不仅一份钱拿不到，还将无法再用火车运输自己的产品。</p>
<p>　　刘在8年里一共修建了1.8万公里铁路，相当于原有线路的四分之一，其中客专有7000公里。现在正在建设的铁路长度为3万公里，其中客专1.3万公里，大部分将在2011年通车。以后，从北京出发，8小时就能到除了海口、拉萨和乌鲁木齐之外的任何一个省会。由于已经开工，这些铁路没办法停下来，今年的铁路投资仍将达到历史最高的8500亿元。刘志军唯一没能开工建设的高铁是从兰州到乌鲁木齐的“兰新第二双线”。但就在昨天，哈萨克斯塔总统在北京签署了协议，由中方负责修建阿拉木图到阿斯塔纳的高铁。据说这条铁路将采用中国的标准，可以连新疆却不能连俄罗斯，这对中国的地缘政治意义很大，可能促使中方再花钱把兰新第二双线也修起来。未来，越南、蒙古和巴基斯坦也都有可能通过改造自己的铁路来加强与中国的联系，中国肯定会一一满足他们的要求。在“走出去”的过程中，铁道部还将得到更多的投资。</p>
<p>　　可惜的是，铁道部并没有像石油企业一样，把巨额投资用在改善员工的收入上。我做了这么多年火车，没见一个列车员说过领导的好话，大家都对低水平的工资非常不满。一位列车长对我说，他原来是首钢的职工，首钢搬走时为了离家近而调到了北京铁路局，现在的工资只有原来同事的四分之一。他认为，刘“跨越”—— 刘志军因为经常说铁路要实现“跨越式发展”而得的外号——眼里只有铁路，从不考虑职工的感受。在刘的领导下，铁路职工的生活水平降到了1923年二七大罢工以来的最低点，经常连续一两个月在列车上度过，连饭都吃不好。更糟糕的是，刘志军在人事上也是雄心壮志，说撤铁路分局就撤铁路分局，谁要是对领导不满意，就会马上失去体制内的铁饭碗。</p>
<p>　　“刘跨越”的政治生命结束了，铁路的难题却刚刚开始。铁道部和铁路网如何处理？在日本，新干线修建完成之后一直亏损，直到日本经济起飞后的八十年代才开始盈利，于是政府就在1987年对国有铁道实施了民营化改革。按经济规律说，中国铁路迟早也应该民营化。但刘志军造成的局面比十河信二要复杂得多，因为他的高铁网太超前，对经济规律缺乏尊重，难以实现盈利。</p>
<p>　　一个现实的问题是，如果中国的铁道部改制的话，改造出来的新铁道公司可以破产吗？如果它被禁止破产，那它就还是铁道部；如果可以破产，这个负债率为 70%的公司离破产就没多远了；如果把“坏的”资产拿走，只让“好的”资产上市，那中央政府通过银行借给铁道部的2万亿元资金就收不回来了。此外，铁道部还凭借着自己的“永远不会破产”的形象获得了大量商业银行投资，如果这个条件消失，投资的资金链也将断裂，政府可能需要花更多的钱来救市。在中国，欠人家两万元会带来很大的压力，欠两个亿就要轻松得多，欠两万亿根本就等于绑架了债主。接替刘志军的新部长，其实一点压力都不用有。</p>
<p>　　撤销铁道部还将面临政治上的挑战。日本国铁民营化运动的裁员人数是44万人，而且国铁本来就是企业，中国的铁道部则是政企合一的“铁道省”，拥有自己的警察、法庭和检察院，其职员们普遍认为自己不但不应该被裁员，反而应该为八年来的辛苦获得补偿。民营化，这一必然要经历的过程将带来社会的动荡，甚至可能发生那位列车长所想象的“全路大罢工”，或局部的混乱。中国准备好了走过这个痛苦的过程吗？</p>
<p>　　或许，解除铁道部对中国的“绑架”，要比铁道部“绑架”中国困难十倍。</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/346/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：一名大学毕业生的反思，震撼心灵！</title>
		<link>http://e200.net/archives/341</link>
		<comments>http://e200.net/archives/341#comments</comments>
		<pubDate>Fri, 07 Jan 2011 06:25:23 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[札记]]></category>
		<category><![CDATA[反思]]></category>
		<category><![CDATA[大学毕业生]]></category>
		<category><![CDATA[教育]]></category>

		<guid isPermaLink="false">http://e200.net/?p=341</guid>
		<description><![CDATA[编者按：中国从来不缺乏对教育倾注无限热情的人，大师、学者、作家，不一而足，而学生作为教育最直接的产品，却往往失去了话语权。近日，一篇万言长帖《一名大学毕业生的反思》备受中国人关注。一时间对于教育质量的讨论再次达到了一个高度。帖子如此之长恐怕会花费你的一些时间，但可以保证，真正将该帖完整读完，你一定会为作者所写的最真实，最露骨的大学所揪心不已。你也可以保存，或推荐给其他朋友。
]]></description>
			<content:encoded><![CDATA[<p>　　编者按：中国从来不缺乏对教育倾注无限热情的人，大师、学者、作家，不一而足，而学生作为教育最直接的产品，却往往失去了话语权。近日，一篇万言长帖《一名大学毕业生的反思》备受中国人关注。一时间对于教育质量的讨论再次达到了一个高度。帖子如此之长恐怕会花费你的一些时间，但可以保证，真正将该帖完整读完，你一定会为作者所写的最真实，最露骨的大学所揪心不已。你也可以保存，或推荐给其他朋友。<br />
<span id="more-341"></span><br />
　　一年半以前，我自以为已经看清了中国大学的本质，不愿意再继续自欺欺人地“学”下去，主动放弃了学校保研的名额，退出了用青春和热血换取一纸毫无真实内容和分量文凭的游戏，退出了中国虚伪可笑的“精英学历社会”。决心进入企业，踏踏实实地从事“实业”，站到中国经济第一线，为国家和社会以及自己作真实的努力和贡献。因为我不想用镀金的“文凭”和“文化”来糊弄我自己，也糊弄其他人。</p>
<p>　　五年多以前，我进入了全国重点名牌大学：武汉大学读书。我抱着最理想的热情，以为从此走上了一条报效祖国，报效父母的人生坦途，以为我的人生即将要大展宏图！</p>
<p>　　三年以前，抱着对“我的大学”最大的疑惑和不解，我辞去了分团委副书记的职务，开始认真地大量阅读和思考我的人生，我的大学，我的未来。试图找到对周围一切我无法理解问题的解决方案。这一次的决定，也意味着我放弃了原来一直抱有的，通过“从政”来为国家民族做贡献的“远大理想”。</p>
<p>　　一年半以前，我自以为已经看清了中国大学的本质，不愿意再继续自欺欺人地“学”下去，主动放弃了学校保研的名额，退出了用青春和热血换取一纸毫无真实内容和分量文凭的游戏，退出了中国虚伪可笑的“精英学历社会”。决心进入企业，踏踏实实地从事“实业”，站到中国经济第一线，为国家和社会以及自己作真实的努力和贡献。因为我不想用镀金的“文凭”和“文化”来糊弄我自己，也糊弄其他人。</p>
<p>　　今天，在毕业工作一年多后，在我的工作和能力已经得到老板和同事的肯定，马上就要派我出国任职的时候，我却辞职了。我不想违心地接受这个光荣，我决心到远在大山中的一所规模很小的，志在探索中国新教育模式的私立学堂，试图通过投身中国最缺乏，最需要的教育，来实现我人生最大的价值：为我热爱的中国，为中国的孩子和未来，也为我自己，做一点真正有意义的事情，而不是日复一日地在无望的等待中浪费掉自己的生命。</p>
<p>　　因为，中国真正缺的不是钱，我缺的也不是钱。中国缺文化，缺教育。我也一样！</p>
<p>　　周围的人都认为我疯了，鬼迷心窍阿了。放弃了中国人从小就灌输的，从小就追求的“最正宗”、“最正确”、“最理所当然”的道路的确令人不解。我也在认真地思考我这样做的理由。在这里，把自己对家人和朋友质疑的回答写出来。你们也可以自己评析：到底是我疯了，还是这个社会疯了？</p>
<p>　　<strong>一、精神缺乏、游戏成风、学生忙着贴金、老师忙着项目——你认识这样的大学么？</strong><br />
　　当我从那古朴典雅的建筑旁走过，再深入到自己的学习环境和学校其他地方后，我发现这个地方与我之前在书中读到的宁静的大学校园不同，这里各色人等纷纷扰扰，大小汽车进进出出，随处可见各式各样的商业海报或者广告，草坪上遛狗的大妈悠然自得。那种在中小学可以听到的琅琅书声在大学里却寥寥无几，大学怎么竟然不如小学？这些大学生们都不读书么？我很困惑。</p>
<p>　　在正式开始上课之后，我更加见识了大学里很多人是怎么样上课的：早晨上课铃响了之后有很多人穿着拖鞋边吃早点慢悠悠地晃进教室，吃完早点后看看上面的老师，讲得没意思，于是爬着再补一觉。有的学生干脆一睡不起，大学里有句话是这样流传的：“一觉醒来一看表十点了，继续睡到十一点半，起来连早点、中饭一起吃了。”</p>
<p>　　晚上十一点后，应该是夜深人静、正值休息的时候，如果你此时走进大学里的男生寝室，你绝对可以看到他们的夜生活才“刚刚开始”，打游戏、玩麻将或者是看武侠小说，好不热闹。鲜见一起读书、共同讨论人生智慧的场景，相反可以看到很多的大学生去网吧包夜，或者在寝室联机打游戏，他们的日常交流沟通内容就是游戏，以至于很多学生迫不得已，为了和同寝室的哥们“打成一片”而“学习”打游戏。游戏已经成为了大学里男生的主要“学习内容”，而且不少人发奋用功地学习了四年。</p>
<p>　　当我第一次在高我一级的学长寝室楼里看到凌乱的宿舍，散发着异味，一抬头就会看到一个蓬松的脑袋和迷离的眼神，我的灵魂被震撼了！我的心中真的不敢相信，这就是武汉大学的学生？空洞的眼神昭示着灵魂的无知和内心的空虚，在终日游戏的日子里打发自己的青春岁月！这是大学生么？这些人就是“为中华之崛起”而努力学习的新一代？我的内心里有一个强烈的声音告诉我：我绝对不要成为这个样子！</p>
<p>　　我的一个同学，从大一到大四，四年的时间，除了考试和教室见个面，其他时间全部在寝室打游戏或者看武侠，反正大学里也没有人管。后来因为挂科太多被学院劝退，家长过来求情延缓时间，但于事无补，游戏照打不误，直到大四时无法毕业。另外一个同学，也是因为打游戏挂科太多被劝退，母亲来到学院跪在学院领导面前说：“我自己在家里吃剩的菜叶在供他读书，求你们给他一次机会吧！”当时我听到学院领导讲到这样的事情的时候，我的内心很受震撼。父母吃菜叶供孩子在城市里打游戏，混日子？还要求情“给机会”？给他继续游戏的机会吗？</p>
<p>　　都说可怜父母心，我想起我辛勤劳作的父母，我想起那千百万把孩子送进大学的天下父母，他们都以为自己的子女在大学里“努力学习”，辛苦地赚钱，无私地供养儿女“上学”，让他们解除“后顾之忧”，不用担心生活的问题。殊不知如今大学校园里，有多少人是在游戏人生。用我在西安电子科技大学一位同学的话来说：“如果他的妈妈来在大学住一个星期，就一定会让他退学回去”。因为在中国“上大学”，可能是人生中一段最轻松愉快的时光了。大家可以游戏，看电视，逃课，武侠小说，这是很多大学男生的全部生活。</p>
<p>　　女生呢？看韩剧，不少女大学生的主要学习内容就是看韩剧等各种连续剧，感情剧，一部接着一部。你能想象这就是“我的大学”么？很不幸的，这一切都是真实的，而且就发生在武大这样的名牌重点大学里。这些人考上大学的时候都是家里的骄傲、很多同学眼羡的对象，可是为什么他们在风华正茂的青春时代里，行为如此令人费解？当时的自己不得而知。当然，并不是所有的学生都这样混日子，大学里还是有很多人依然比较用功地学习，但是他们也一样困惑：让他们努力学习的原因主要是“恐惧”和压力：怕找不到好工作，怕考不上研究生。</p>
<p>　　大家都听说就业很困难，武大每年找不到工作的毕业生都很多，因此不敢“放纵”自己。但是很少有学生努力学习是因为追求智慧，追求真理，为国为民而学。这些用功的学生虽然没有“游戏人生”，但是却生活在沉重的压抑心理状态下，思维往往呆滞，慢慢地走上一条被大学生们嘲笑的“越学越傻”的“傻博士”道路。实际上，每年大学里自杀的大学生，往往不是“不用功”的“坏学生”，而是这种心理严重压抑，用功学习的“好学生”。他们一样，从一进大学开始就碰到很多无法解决的困惑，同时被灌输着一些所谓“正确的发展方向”，他们只是愿意服从这些“权威结论”，以自我的压抑而不是以心灵的呼唤来“学习”，这难道就真的比“玩游戏”“看影碟”更好吗？大学的学习到底是要达到什么目的？大学生们为何都迷失了自己的理想。</p>
<p>　　照本宣科的老师 一学期也见不到几次</p>
<p>　　首先是专业的学习让人迷惑：很多老师照本宣科，大学里面真正关注教学、关心学生，有上课水平的老师越来越少了，不知道老师都在忙些什么。</p>
<p>　　老师的本职工作应该是传业授道解惑，可是有的老师一个学期学生也见不了几次，派他的研究生来上课。后来我才明白原来他们都在忙着自己的项目和课题。大一的时候，我们通信工程专业有个博导带物理，学生的评价是这样：“还博导呢，都博成个啥了？讲得稀里糊涂，还经常不来上课。”。大学选用的教材令人费解，明明有很好的全国通用教材，比如高等数学的同济五版，却偏偏要选用自己学校编的教材，艰难晦涩，连选用的习题都是历年研究生考试的数一类，可能是编排教材的老师想提前让我们进行考研准备吧？</p>
<p>　　后来才知道学校选用这种“自编教材”的原因，是老师们因为要“评职称”。需要“科研成果”，就东拼西凑的乱编一些“教材”来“完成任务”，这种放到书店里根本没有人会要的垃圾教材，他们就利用自己教学的权利，发给大学生们上课用。据说老师们也很可怜，每年都要完成所谓的“科研成果”，要写论文，出书来完成任务，否则就可能降职。有些老师没办法就自己花钱在外面找刊物发表文章，这种可以不花钱出教材，让学生买单的事情也很容易理解了。</p>
<p>　　大学里的学生生涯，除了要求学生的专业学习之外，鲜有启迪心灵的声音，更重要的是缺乏指导大学生人生发展与定位的课程，能够让大学生明白自己为什么学，为什么活的课程。我自己学习的专业是电子信息科学类，和很多同学一样，我在必修的公选课如高等数学等认真学习，但是我在每天的专业学习之外内心十分彷徨，我不知道这个专业适合不适合自己，不知道这个专业意味着什么？</p>
<p>　　不知道这个专业的社会发展方向和主流是什么？也不明白这个专业培养的目的是什么样的人才要求？我不知道该怎样进行大学的学习，更不知道前面的路在那里。我该怎样去一步步实现自己的理想？我碰到过很多的大学生也是如此。他们对于自己所选择的专业了解甚少。其实我觉得老师也根本不了解这些专业到底要做什么，后来知道大学里的管理人员，看专业叫什么名字容易吸引学生，就改个名字。看什么专业热门好找工作，就赶快“上马”一个专业，拼凑一些“课程”出来糊弄人就完事了。</p>
<p>　　很多学生只是为了就业的方便而“选择专业”，但是当他们真正想去定位自己的时候，就反而陷入了“专业思维”而不能自拔。多数人只是为了一份工作而读一个热门的专业，却忘了去关注自己的兴趣、爱好，甚至综合能力的培养和理想的思考。</p>
<p>　　《大学重建》让我开始了解大学的起源、存在的意义，那就是大学应该是一个社会的良知和思想发动器，大学应该为这个社会培养具有正义、勇气和智慧的学子，在他们走上社会之后能够有能力去逐步改善这个社会中不好的东西，促进社会的发展，并不断致力于人类物质社会的改造，以及科学、艺术文学等精神文明的探索和提升。</p>
<p>　　我听到了一些激动内心的声音，也似乎抓住了一些东西，但是我的内心依然彷徨，方向不明确，理想似乎越发遥远，而不知如何下手。同时，为什么我们的大学会是这个样子？为什么这么多的学生缺乏精神思考而且没有老师指引？除了在一些讲座上偶尔能够听到一些激动内心的声音外，为什么大学里的老师讲完课就像是打工混日子，无趣无内容，讲完就走人？为什么大学老师从来不与学生探讨人生智慧？为什么我们这么多的大学生对此熟视无睹？这些问题我不得而知，而我自己也在从事学生干部工作的道路上，碰到了更多的困惑。</p>
<p>　　<strong>二、为什么要辞去团委副书记？</strong></p>
<p>　　大一时我参加学生会新闻部，然后做部长，和一群志气相投的朋友激扬文字，度过一段难忘的日子。在大二下的时候，成功竞选为分团委副书记兼学生会主席团成员。然而在半年后，我就毅然辞去了这个光鲜的职务，你可能会很惊讶，我不是有“总理的梦想”么？为什么要辞去呢？这可是走上“官员之路”的正途呀？在我最开始做学生会一个小小的部委时候，我只是抱着开阔眼界、锻炼自己的想法。到了后来做部长，在我的本职工作之外，我开始思考我做的事情作用在那里？到底能够做那些有价值的事情去服务同学？</p>
<p>　　大学里的学生有很多的问题需要引导帮助，就像我自己内心就有很多的困惑需要解答，学生会做得这么多活动能够解决了么？没有。从我进学生会开始，我就抱着相机在各种各样的活动跑着，班团会、运动会、文艺比赛等等，在开始我很兴奋，因为生活很充实，活动的确还比较丰富多彩。但是慢慢的，我的内心开始不明白，我发现这些活动组织了、举办了、精彩了、笑过了，却没有更多的智慧启迪，似乎只是一个“政绩”的记录。那些游戏的大学生继续游戏，我内心对于理想的迷惘更没有在这些活动中得到解答。</p>
<p>　　于是我开始不明白，为什么要花很大力气很多精力组织这一些形式上的活动，而不去关注学生真正的问题、做学生和大学里真正应该做的工作？那个时候我还是学生会的新闻部部长，在面临换届的时候我想过退出，我的内心已经隐约地告诉我这个地方不适合自己。但内心那个朦胧的梦想让我思考：如果我的“地位”更高一些，“权力”更大一些，如果自己可以领导团委和学生会，是不是就可以去做一些真正有意义有价值的事情了？自己也可以通过这个机会锻炼自己，以明确自己的方向。有很多的学生干部就是这样一步步走上从政之路的。</p>
<p>　　于是我开始努力“提升自己”：凭借自己比较不错的实力和老师的信赖，我成功地竞选为学院的分团委副书记，这可能是学生中地位最高的“官”了。我的内心鼓足了干劲，我要做出一些真正对学生有帮助的事情。可是当真正到了这个位置时候，我才发现我是多么的天真：各种各样的活动，不是我们能够“安排”的，我们只是按照“上面老师”布置的既定程式和内容去走，想要改变其形式上的作用几乎不可能；学院的老师有自己的安排，校团委的领导有自己的想法，一切都要达到一个目的：活动要精彩，形式要多样!可是没有一个人去思考这样的活动带来的实际意义在那里。</p>
<p>　　我发现自己更加没有个人的“自主权”，必须要面对更多的无聊会议，要去组织很多无意义的活动，这些会议、这些活动大多数对于服务学生或者实现自己的理想都根本没有什么作用，更没有办法去解决我所碰到的诸如沉迷网络游戏、缺乏精神风貌的现状，我甚至还失去了思考和学习提高的时间和空间。</p>
<p>　　我的内心不明白：为什么我们不能针对性地去解决学生中切实存在的各种问题？为什么不在他们沉迷网络与游戏时加以规劝和引导，甚至采取一些强硬的措施？难道非得等到他们挂课后给予处分、开除学籍么？更有甚者，与其他学院的一些学生干部打交道后，我发现大学学生会里面的学生干部，有不少本人就是“游戏大学”的优等生，但是他们却因为和辅导员老师关系不错而成为学生干部，来帮助老师“管理学生”。这样的学生干部能够引领学生走向哪里？同时，这些人似乎非常自信自己是一个“精英团体”，个个都感觉良好。</p>
<p>　　学生干部中开始有很多的饭局来“拉进”彼此的关系，喝酒甚至吸烟，所谓的“烟搭桥，酒开路”这样的话，我第一次就是从学生会主席的口里听到的，我很困惑，这是在读大学的有志青年学子么？这就是要引领国家未来的“精英集团”嘛？我们国家就缺这样的“人才”吗？</p>
<p>　　当面对着这样的现状的时候，我的内心开始痛苦：我可以选择若无其事尽自己最大的努力做下去，反正都已经做到了这个地步，熬一两年就会有各种优秀的荣誉、保研的机会，通过这个平台可以一步步走上从政之路。但是，我也开始明白了，无论我将来的“地位”有多高，“权力”有多大，我都无法实现自己的理想，我是一个人在与一个庞大的，堕落的，只关心物质利益和为自己捞好处的集团体系作对。</p>
<p>　　我如果想当上“总理”或者其他能够有决策权的位置，就必须跟他们一样混下去，否则早早就会被这个体制踢开。但我真的希望这样么？如果我把宝贵的时间都花在了一些根本不能起到实际作用的事情上，来收获一些所谓的荣誉和好处，我内心的困惑将怎么办？我之后的道路该怎样继续？难道这就是我的理想？</p>
<p>　　在经历了深入的思考后，任职半年我就毅然申请辞去这一职务。当时学院的老师很惊讶我的举动，在明确我执意要辞后，非常好心地建议我可以挂名不做事，这样在大四时候就可以获得保研的机会。我不愿意占这个便宜，告诉老师，既然要走就走个彻底，不需要挂名，我的内心不喜欢这样的方式。</p>
<p>　　于是，我很高兴地脱离了很多无聊的“学生工作”，回到了没有会议，没有那么多我看不懂活动的自由日子。自己读书、听讲座、听武大的“周末艺苑”，让自己的内心自由自在地成长。我努力去重新定位自己的理想，因为我发现从政似乎不适合自己。剩下来的选择还有两个，一个就是大家都很热衷的，也是很传统的“实业救国”之路，我可以去帮助我们国家成为一个经济强国，也帮助自己成为一个“经济英雄”，做“李百万”　另外一条就是冷板凳的“学术之路”：考研，攻博，成为一个学者。</p>
<p>　　我很敬佩经济学家林毅夫先生，当年作为热血青年，做为一个台湾军官，由于反对蒋家王朝的政治腐败，他“叛逃”到大陆。他当然可以享受“义士”级的待遇，在我国的“党政军”系统里快速地升职。但是，他当时叛逃台湾，绝对不是为了谋取物质利益，而是为了心中的热血理想。我想他后来离开政治圈子，走上学者之路，是不是跟我一样，发现在中国“从政”不能解决“为人民服务”的理想，只好去研究学问，去当学者。否则如果他叛逃的目的，仅仅是想当一个学者的话，当时的台湾条件更好，所以一定有他的难言之隐。他现在已经成为了世界经济学界最好的学者之一，还被提名诺贝尔经济学奖。</p>
<p>　　到底那条路更有意义和价值呢？我努力去大量阅读，努力去思考，去发现各种线索和事实来帮助我决定，去解决我内心所有的困惑。</p>
<p>　　<strong>三、读懂“大学”，我发现“做学问”在大学也是一条走不通的死路。</strong></p>
<p>　　我真的能够专专心心去做一个学者吗？像林毅夫那样？在不断地阅读和思考中，我对于大学的认识也越来越多，我也开始明白为什么这个曾经安静和充满追求智慧风气的象牙塔越来越千奇百怪。商业中逐利的浮躁气息充斥着整个校园，学术与商业的挂钩和教师职称评定的畸形化，使得大学校园里越来越多的老师不重视教学而忙于自己的项目，忙于发表论文。因为有了论文，有了项目，才会有职称和金钱，才会有房子、车子和各种名誉，这样的老师那里有时间去传业授道解惑呢？</p>
<p>　　但是现在的大学校园里，基本上都是这样的老师。因为“理想型”的老师注定要被现实“淘汰”。别的学校不了解，但是全国有名的易中天，在武大的时候却因为个性独特，不愿流俗而被排挤，出走厦门大学。后来是学生们敬仰的武大四大名嘴之一的哲学教授赵林也要离开武大，引起学生轰动。</p>
<p>　　后来据说校长看民意沸腾，才执意挽留赵林老师，勉强留了下来。但是根子上的问题并没有解决，因为我最近又听说专注学问的知名哲学教授邓晓芒要去华工。一个文科教授，却要离开以文科着名历史悠久的名牌大学，宁愿去一所工科大学任职，武大到底怎么了？珞珈山还是个做学问的地方吗？四大名嘴的尚重生教授也说：当年与他一起留校任教的早期很多有才华的老师，都离开武汉大学了。而且很多离开了大学，离开了学界。难道在中国，学者之路也同“从政”之路一样，是一条不可行的“梦幻之路”？中国之大，放得下一张安静的书桌吗？我很不安地探讨自己从事“学问之路”的可能性。越来越多地发现：所谓的“名牌大学”里，真正的学问根本没有地位。</p>
<p>　　老师不关心学问和学习。在这样的大学里，缺乏真正传道授业解惑的老师。因为老师在大学里其实是“弱势群体”，他们被一群根本不懂教育的教育官员们“管理”着，迫于生存压力，为了职称，为了提级，为了饭碗等等，不得不向畸形的评定机制屈服。能够独立思考和具有独立人格的老师，可能根本就不见容于这个教育官僚体制。</p>
<p>　　连知名的教授如赵林，邓晓芒都不得不屈服于“体制”，连四大名嘴尚重生都不断地抱怨无法发挥所长，我一个小小的后生，真的能在“学问”的路上实现理想吗？很多博士生导师会派自己的研究生替代自己给本科生上课，自己忙项目，当老板，追逐金钱和权力地位，这与“官场”和“商场”又有什么不同呢？真正的不同，就是这里更虚伪，贴了一张“教育”的皮，所以更害人。</p>
<p>　　校长把老师当打工仔 谁也不关心学生</p>
<p>　　大学的领导不关心学问。他们不关心教师，仅仅是把教师当做打工仔。他们也不关心学生，不理会学生的愿望和要求。很多管学生的“大学领导”在学生面前高高在上，一副“官员”的样子。他们也不关心自己的毕业生到底受不受社会的欢迎，不关心学科的设计是不是符合教育和社会的要求。他们只关心“如何保住位置”，“如何捞取好处”，如何“买卖文凭”，如何与社会上的官员们“交易”。</p>
<p>　　学校的老师告诉我：武汉大学授予了很多官员“特聘教授”的头衔拉拢他们，还送出大量的“博士学位”给各级官员，仅仅因为他们是有实权的“官员”，学校愿意“证明”他们“很有学问”，让他们捞一笔“学问资本”。这些都是公开的秘密。大家都知道前几个月武汉大学的两个校领导被抓，其中一个还是享有“国家荣誉”的获奖“杰出领导”，这暴露了大学一系列问题的冰山一角，据说出事以后，很多有实权的“大学领导”们都惶惶不安，生怕有一天查到自己头上来。我相信这不是武汉大学一家的事情，可能其他大学更腐败。</p>
<p>　　可是，我关心的是：这说明了什么？这样的大学，难道真的有“大学精神”吗？真的是一个我要做学问的地方吗？</p>
<p>　　<strong>1.我缺钱么？我们的社会缺钱么？我的人生需要去做一件没人需要的事情吗？</strong></p>
<p>　　现在我们的国家里，大家都在努力创造着物质的财富，每一个城市里可以看到很多忙忙碌碌的人，每个人都在辛苦的追逐着。特别是我在深圳工作，这个节奏很快的城市就是金钱驱动的城市。每一次，我坐公交车的时候，我都会留意下那些等车的和街上走过的人们，很多人的脸上都写着焦虑和疲惫。</p>
<p>　　大家都在追求金钱以为会带来幸福，可是为什么都这么不快乐？望着车外的人们，我就问我自己：会不会有一天我也会变成跟他们一样？ 我问自己追求的幸福是什么？是更多的物质财富，不是，我想幸福于我而言，是一个健康的身体，一份开心有价值的工作并能保障物质生活，一个和睦的家庭。并能把这个幸福的圈子尽自己最大的能力去推广，那么我实业的梦想能够带给自己幸福和更多的人幸福么？</p>
<p>　　再看看我们的国家，改革开放三十年了，中国已经诞生了很多的企业，华为、联想、等等，人们已经创造积累了很多的物质财富，物质生活也越来越优越。而我们却越来越齐心协力地追求金钱，我们创造了很高的GDP，但同时我们面临着越来越多的社会问题：工业的发展带来了很多的环境污染，大都市白领的生理和心理健康每况日下，都市女性白领越来越多的人不能走进婚姻的殿堂，越来越多的高校毕业的大学生找不到工作，都市人在物质富足的表象里精神匮乏，借以酒吧、网络游戏、聚餐等打发时间，青少年儿童以及高校大学生自杀比率升高，流行文化越来越庸俗甚至恶俗化，以及我在大学所碰到的种种困惑，为什么会有这样的问题？怎样去解决？靠追求金钱可以么？</p>
<p>　　而这些问题却很实在地关乎我们每一个人的幸福，我们这个社会的整体幸福。但这一切，靠钱都不能解决，是要靠文化，靠智慧。如果金钱可以解决，那我们可以用钱买来生理和心理健康，可以买来家庭的幸福和谐，可以买来优秀的文化，我当然应该多赚钱。可惜这一切都买不来。</p>
<p>　　<strong>2． 为什么说中国缺乏真正的教育？</strong></p>
<p>　　靠文化，靠智慧，人才能够得到幸福，国家才会真正强大。为什么一定要去做教育？答案是只有教育才能从根本上改变一个国家的素质，而我们目前的中国缺乏真正的教育，为什么这么说？看看教育和社会的现状以及我们传统文化的断层现象我们就可以明白。</p>
<p>　　我们的小学、中学乃至大学教育都在教学生不断地考试，关注考分，然而，做了那么多的试卷，考了那么多的试，拿了学士、硕士、博士文凭就能解决人生和幸福的问题吗？看一看现在的大学生面貌，有多少人不过是在混一张文凭而已，还自欺欺人地以为：这张文凭会给自己带来一份不错的工作和钱途，可能么？那么多经过高考的学生，走进大学为什么就失去了青年人本来应该有的朝气和活力？为什么他们沉迷网络游戏、在无聊中打发着自己最宝贵的年华？为什么那么多的人找不到工作呆在家里成为“啃老一族？”还有工作之后很多成为“月光一族”？</p>
<p>　　我们最终都要走上社会，我们最终都要独立地去面对生活和生存，我们最终都要为人父母，我们最终都要赡养自己的父母，真正关乎我们人生幸福的问题，诸如怎样去强身健体，怎样去规划人生方向，怎样去处理婚姻问题，怎样去教育孩子，我们的教育有去关注或者启发我们去思考这些问题吗？难道我们的教育就是要在学校里培养一群考试的机器，然后出来成为一个工作的机器？老了成为一个等死的废物吗？</p>
<p>　　那么什么是真正的教育？德国二百年前的教育宣言曾经如此说道：教育的目的，不是培养人们适应传统的世界，不是着眼于实用性的知识和技能，而要去唤醒学生的力量，培养他们自我学习的主动性，抽象的归纳力和理解力，以便使他们在目前无法预料的种种未来局势中，自我做出有意义的选择。教育是以人为最高的目的，接受教育是人的最高价值的体现。</p>
<p>　　问一问亲爱的朋友们，在中国目前的小学、中学和大学校园里，有这样的教育么？没有，中国太缺乏真正的教育、缺乏真正的大学了！同时我们回过头来看看中国传统的知识分子是怎样做的，宋朝一代大儒张载曾如此说过：为天地立心，为生民立命，为往圣继绝学，为万世开太平！从此以后，这句话成为了中国知识分子的共识，而现在，我们的社会中有多少这样的学者？我们的大学里有多少这样的教授和博导？我们可以看到为各种利益集团说话的所谓“专家”，可以看到为了金钱奔波在官场和商场的教授和博导。</p>
<p>　　现在我们的社会很多人都在一味地追求金钱作为人生最高目标，从让我们痛恨的房地产商到现在的医院，从老师到卖奶粉的，很多人都忘了自己本职工作的职业道德，一味地拜金。缺乏文化和责任的富人们给我们的社会带来了越来越高的交易成本和越来越多的危害。我们可曾知道美国的清洁工人的工资可以达到年薪五六万，但是他们的房子只需要三十万左右的美金？而我们国内的老百姓却需要耗费两代甚至三代人的积蓄去买一套房子，就因为一些人昧着良心攫取高额利润，而让多少大学生一毕业就要面临这个严峻的人生大事，房子真的值那么多钱么？孟子曾经告诉过我们：上下交征利，国危矣。三鹿奶粉、各地不断的儿童血铅案例已经用血的事实不断地印证着这句话，而我们的社会还需要多少这样的例子来唤醒大家：如果仅为了钱而忘记了道德，昧了良知，我们的社会将走向何方？</p>
<p>　　在这么一个逐利的社会里，究竟还有多少中国人会静下心来学习和传承我们博大精神的传统文化？《老子》、《论语》、《大学》、《金刚经》、《资治通鉴》等等，这些经典的遗产我们继承了么？我们该怎样把这些东西交给我们的下一代，如果不能交给，如果不能完成五千年里中国文化的传承，我们何以有颜面自称为中国人？</p>
<p>　　曾经有句话是这样说的，一个国家破亡而文化存在的民族，一定可以恢复国家（比如以色列），但一个文化破亡了的民族，无一例外地彻底从历史舞台上消失了，比如古巴比伦等。而正是由于这些精髓的传统文化丢失，我们的社会才变得越来越千奇百怪。</p>
<p>　　学校缺乏真正的教育导致了社会上很多人盲目逐利、精神空虚、各种社会问题曾出不穷，传统文化精髓遗失，后面两者又反过来影响着学校的教育，如此的恶性循环回把我们带向哪里？我们的后代将会生存在一个什么样的社会里？</p>
<p>　　究竟是这个社会在疯狂地走向一个危险的境地，还是我是一个疯子在危言耸听？</p>
<p>　　<strong>3．为中华之崛起做教育</strong></p>
<p>　　考虑到如此的地步，我对于自己做实业的想法又发生了深深的怀疑，我对于自己，对于这个社会的生存发展产生了深深地担忧。一百多年前，梁启超先生曾写下《少年中国说》，一百多年后的今天，我们仍然面临着同样的问题，而且更加严重。只有从教育上去入手，培养优秀和有良知的公民及社会领袖，我们才有希望去改变我们社会中丑恶的一面，才能传承我们的文化，我们的子孙后代才会健康、幸福地生存在这块土地上，才能自豪地说：我是一个中国人！</p>
<p>　　因此我决定走进大山，去一个小小的私立学校做一名普通老师，学习中国博大精深的传统文化，习武修身，传播智慧。为我热爱的这个国家，为中国的孩子和未来，也为自己，去做一些真正有价值的事情！因为唯有文化方能立国，唯有真正的教育才能树人！唯有智慧方能让一个人拥有真正的幸福，让一个社会真正的和谐，让一个国家真正的强大！</p>
<p>　　注：没有想到文章受到这么多人的关注，在此说明下——由于体制内教育的失败，我不可能加入任何一所官办的应试学校来实现自己做真正教育的理想，而选择了在大山里的这所私立精英学堂（别误会，不是农村支教，那样我再努力也只是为体制培养几个低级打工仔），不提学堂名字的原因，是因为避免有人说我是商业炒作（毕竟是私立的），玷污了这个神圣的教育理想。</p>
<p>　　同时，这所学堂目前因为超前的教育理念，虽然规模不大，但影响力已波及全国，她必将成为中国未来先进教育的一个范例，因此我也不想借名生辉，借学堂出名。我更愿意贡献自己的一份力量，通过自己踏实的努力来让学堂因我而更荣耀而非相反。希望大家理解。</p>
<p>　　另外，我开始新的工作才两个月。在这里，我第一次尝到了“挫折”的感觉，相对于我一贯的“顺风顺水”，我在这里明显感到了自身能力的不足和思想的浅薄。相比一起工作的，跟我同年毕业的同事和朋友，我感到了实实在在的差异，我需要有更多的努力来提高和完善自己。但是，这反而让我更加高兴，更加认定了自己选择的正确：这是一个可以让我不断提高的地方，这是一个可以让我实现自己理想的地方，去实现自己的教育强国之梦&#8212;-去不断提高自己和需要我帮助提高的人。</p>
<p>　　写这篇文章目的有两个：</p>
<p>　　<strong>1. 能够唤醒大学里沉睡的一部分人去思考自己的人生而非随波逐流、人云亦云，自助者天助之。</strong></p>
<p>　　<strong>2. 引起更多的人对于教育的关注和反思，因为这关系着我们每一个人的幸福。我们不能因为老师、大学和社会对我们不负责任就放任自流，相反正因为学校和社会没有为我们负责，我们更要加倍地为自己负责，更要认真地思考和选择自己人生。如若能达到此两者，足矣，谢谢各位。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/341/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：小寒后最推荐的4款补气血美味汤品</title>
		<link>http://e200.net/archives/337</link>
		<comments>http://e200.net/archives/337#comments</comments>
		<pubDate>Thu, 06 Jan 2011 08:21:17 +0000</pubDate>
		<dc:creator>米糊排骨</dc:creator>
				<category><![CDATA[札记]]></category>
		<category><![CDATA[牛腩]]></category>
		<category><![CDATA[西红柿]]></category>

		<guid isPermaLink="false">http://e200.net/?p=337</guid>
		<description><![CDATA[最近的天气特别冷，一些原本就畏冷，手脚冰凉的女性就更难熬了。

大多数怕冷，手脚冰凉的女性还会伴面色暗黄无光泽，有齿痕，虚胖等情况，看了中医后多半都是因为脾胃虚弱，气血不足而造成的。下面就介绍几款美味的汤品，经常食用，不仅可以让你感觉暖暖的，还会从根本上调理脾胃，改善气血不足的情况。]]></description>
			<content:encoded><![CDATA[<p>最近的天气特别冷，一些原本就畏冷，手脚冰凉的女性就更难熬了。</p>
<p>大多数怕冷，手脚冰凉的女性还会伴面色暗黄无光泽，有齿痕，虚胖等情况，看了中医后多半都是因为脾胃虚弱，气血不足而造成的。下面就介绍几款美味的汤品，经常食用，不仅可以让你感觉暖暖的，还会从根本上调理脾胃，改善气血不足的情况。<br />
<span id="more-337"></span></p>
<p><strong>一、牛肉西红柿汤</strong></p>
<p>材料是牛腩肉，西红柿。做法也很简单，先将牛肉切块，焯水，去掉浮沫，然后加大料，葱段，姜，炖煮到牛肉软烂，再加入切小块的西红柿煲3、5分钟，加入调味品，香菜末就可以了。</p>
<p>营养讲解：牛肉是肉类（除肝脏）中含铁最多的，中医讲也是补气血，调脾胃上好的食物，且热量也不高。补铁还有一点需要注意就是补充维生素C，因为维生素C可以促进铁的吸收，加大铁北人体的利用率和吸收率，这里添加的西红柿妙处就在这里，西红柿富含维生素C，还含有可以抗衰老防癌的番茄红素。还有就是香菜，香菜属热性，可用来助汗排湿。所以这款汤品特别推荐。营养互补，荤素搭配，可以说是绝配。</p>
<p><strong>二、山药木耳煲乌鸡</strong></p>
<p>材料是乌鸡，山药，木耳 枸杞</p>
<p>营养讲解：乌鸡不用多讲，历来是女性滋补身体的上选。加上了山药，更突出冬季进补的效果。从口味上来说，山药的柔润和牛肉的鲜美相得益彰，还能让汤汁乳白，鲜味柔和。从营养上讲，山药是健脾、除湿、补气、益肺最佳的平补脾胃的药食两用之品。不论脾阳亏或胃阴虚，皆可食用。可逐渐恢复脾胃运化功能，使食物不再是蓄积体内形成脂肪，而是转化成营养精微，从而生成气血改善手脚冰凉消耗分解体内沉积的脂肪的作用，从根本上帮助女性彻底的健康瘦身，红润肌肤。加上少许木耳和枸杞，除增加营养的作用之外，木耳还可以起到清除油脂，体内垃圾的作用。当然，这也符合我国饮食注重色香味俱全的色。</p>
<p> <strong>三、双萝滋补汤</strong></p>
<p>材料是牛蹄筋，白萝卜，胡萝卜。做法上牛蹄筋和牛肉略有不同那个，先焯水去除浮沫后捞出洗净然后上蒸锅蒸一个小时左右，待牛筋变得软糯时取出，切成 1.5cm长的小段。再将牛蹄筋、白萝卜、胡萝卜放入锅(砂锅最好)中，烹入料酒，加适量盐、高汤、葱段，焖煮30分钟，出锅即可。<br />
营养讲解：牛蹄筋性温，有调理脾胃，滋阴补肾，益气补虚，温中暖中的作用。蹄筋中还含在丰富的胶原蛋白，脂肪含量也比肥肉低，并且不含胆固醇，能增强细胞生理代谢，使女性皮肤更富有弹性和韧性，延缓皮肤的衰老的作用。白萝卜可以润肺去燥、调整胃肠机能促进消化，加快肠蠕动改善便秘，对很多疾病都有预防和改善的作用，特别适合冬季进补，所谓冬吃萝卜夏吃姜一点不假。<br />
 </p>
<p><strong>四、淮山枸杞子鲜菌猪尾汤</strong></p>
<p>　　 材料是山药、枸杞子、金针菇，猪尾或者牛尾。猪尾先切断焯水，去除浮沫，然后重新加水，加入生姜，桂皮，大料，葱段，大火煲沸后，改文火煲半个小时后加入山药，继续炖煮半个小时，然后加入焯过水的金针菇，洗净的枸杞子，约10分钟观火，调入适量食盐便可。<br />
营养讲解：牛尾对女性来讲是非常好的补气、养血的食物，同时还具有强筋骨，健体态的作用。味道也可以说是牛肉中最好的。金针菇能有效地增强机体的生物活性，促进体内新陈代谢，有利于食物中各种营养素的吸收和利用，对胃肠不好、血脂高，肥胖者非常适合。 同时又加入了可以调理脾胃的山药，滋阴的枸杞子，所以这款汤不得不推荐哦。</p>
]]></content:encoded>
			<wfw:commentRss>http://e200.net/archives/337/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

