Tag Archives: IT

从Internet访问没有外网ip的NAS服务器的解决办法

  最近家里买了一台NAS服务器,用来完成多项任务,比如存储和管理大量的照片,用做24小时离线下载机器等。但其中NAS比较吸引我的一个功能是,能够随时随地从外网访问家里NAS机器上的数据,并且能够在外地游玩的时候,把照片通过互联网随时传到家里的NAS机器上备份并腾出设备空间继续拍照。
  这样做的前提是你的路由器得有一个外网ip。有了外网ip后,可通过设置路由器的端口转发,再设置一个DDNS域名就可随时访问家里的NAS了。但恰好自己使用的网络是鹏博士集团下的一家公司(宽带通,长城宽带都是),恰好他们以转卖二手带宽,不给拨号用户外网ip而著称。他们给你的拨号ip实际是经过多层NAT转发的一个大局域网ip。为了实现目的,必须解决所谓的NAT穿透/NAT打洞/内网穿透问题。
  一开始搜到了花生壳,最近刚好除了内网版,号称可以实现没有公网ip的情况下访问你的内网设备。测试了一下果然可以,但需要交年费,并且限制流量,要想用更多的流量就得交更多的钱,弃用之。
  最后找到了ssh的反向端口转发(reverse port forwarding)功能,这是常被忽略但是非常强大的一个用途。原理是在本地机器的端口和远程机器的端口建立映射关系,这样访问远程机器指定端口时,所有请求都会被加密并传输到本地机器的端口上,本地机器响应后将结果在转发回远程机器的端口,整个过程看起来就像远程机器做出响应一样,强大之处是远程机器可以直接绕过防火墙和各种NAT转发,准确找到你的内网机器。
  具体做法很简单,只需要一个命令:
  ssh -NfR <remote port>:localhost:<local port> remoteuser@remoteserver
  其中remote port是要接受请求的远程机器端口,local port是要做出响应的本地机器的端口, remoteserver是远程机器的地址,remoteuser是负责转发的具体用户。比如家里的NAS端口是8080,你的vps外网地址1.2.3.4,那么可以通过在你的NAS上执行ssh –NfR 8888:localhost:8080 user1@1.2.3.4命令后,访问vps的8888端口来访问家里的NAS机器了。
  几个需要注意的问题:1. 需要设置远程机器ssh配置文件中的GatewayPorts参数来达到允许任意地址机器来使用这个转发规则的目的,  否则上述命令只允许在远程机器本机上的请求通过,centos上操作见此;2. 该命令执行后,如果一段时间内没有请求被转发,则ssh反向连接会自动断开,这时候就需要autossh之类的工具来维持这个连接(实时监测,断开后自动重连),具体使用方法可以搜到很多例子;3. ssh通过autossh自动重连时不可能每次都手动输入用户密码,所以需要改用key authentication的方式连接(将本地机器的用户公钥添加到远程机器用户的~/.ssh/authorized_keys文件中)。
  虽然鹏博士的实际出口网速很慢,但在大局域网下迅雷下载能满10M/s,可在线看1080p视频,性价比还是挺高的,明年不用换高价的宽带了。。。
  PS: 此方法可用于其他场景,比如回家后远程访问公司机器上的资料,给外网客户演示公司内网机器上的demo等。

  参考资料:

google maps中的中国式街景

  大家都知道google maps有个街景服务(street view),自07年推出起,目前已经覆盖了北美洲,欧洲,东亚大部分国家和地区的城市。这样即使我们足不出户,也可以浏览异国他乡的景色,比如看看英国的“伦敦眼”:


View Larger Map
  但由于某些原因,虽然google的街景已经完全覆盖了我国台湾,香港和澳门地区,但大陆地区的街景数据采集仍是遥遥遥遥遥遥无期。
  今天偶然发现,当你拖拽街景的小黄人到地图上的时候,除了能够浏览街景的主要街道以外,还有许多蓝色的热点地区可供浏览:
image
  而这些蓝色的热点区域是网友们上传到panoramio网站(以前被google收购)的照片。于是通过这些离散的照片,我们也能略微领略一下当地的风景了。
  赶紧看看你的家乡吧~
  ps:该功能必须使用英文版地图:http://maps.google.com才能浏览,中文版http://ditu.google.cn不提供;
  pps:欢迎围观我在panoramio上的照片~

newnaw.com服务器迁徙

        newnaw.com注册开始就在国内某域名注册商放置,服务器空间最初100m静态,现在是300m静态。最近快到期了,按照该网站的价目,“大惠A”之后300m静态空间一年300rmb。由于1、国内恶劣的互联网环境,2、极其低劣的性价比,3、令人反感的套餐名称,决定把网站迁往西半球。
        和鲶总两人合买vps,16G空间,python,php随意,ssh账号上国际互联网,vpn假设都由自己,价格下来与国内的相差不多。
        美帝主义那边据说办事一向很迅速(出了ooxx之外,囧~),瞧,这不已经搬家完毕了~

访问国际互联网方法三则

        事件起因:不可言传,不可理喻。
        事件经过:

  1. 使用vpn软件:hotspot shield和packetix,下载,安装,运行软件后即可访问国际互联网。特点:操作简单,稳定,但不能按需访问;
  2. 使用自敏由感门词最新版:下载,无需安装,直接运行,运行后即可访问国际互联网。特点:操作简单,速度快,稳定;注:运行该软件后无法访问全世界最大局域网内的所有网站,推荐办法:左手开firefox,右手开chrome,firefox上内网,chrome上外网。原理:运行该软件后会自动设置ie浏览器的代理,但不会修改firefox的代理,而chrome默认使用ie的代理,所以chrome出去了,firefox还在里面;
  3. 使用ssh+myentunnel+firefox+autoproxy/forxyproxy:获得ssh账号以后,下载mytunnel(其实是用plink程序登陆。或者支持ssh协议的客户端也行),在firefox下载上述两个扩展其中的一个,稍微进行配置。两个扩展的共同点:配置好后,都能对国际互联网按需访问,即需要时自动以ssh方式访问,不需要时使用原有连接方式访问内网。两个扩展的区别:autoproxy操作简单,能直接订制无法访问的国际互联网网站列表,达到按需访问的目的,但同时只能使用一种方式的代理;要达到按需访问的目的,foxyproxy需要自己定制网站列表,可提前添加也可随遇添加,但其灵活度高,网址列表支持通配符和正则表达式,并且可以配置多种/多个代理同时使用,保证速度和稳定度。注:一些互联网中最受欢迎的站点,比如facebook,twitter等的dns解析在内网都被动了手脚,也就是说你用本地dns解析是访问不了这些网站的,在firefox的地址栏输入“about:config”进入firefox的高级设置页面,找到“network.proxy.socks_remote_dns”项,把它的值改为“true”,这样就可以用socks代理服务器上的dns来解析这些网址了;但你如果同时安装了flagfox插件,那么flagfox就无法正常工作了,因为flagfox要求用本地dns解析获取ip地址,从而显示小国旗~

        以上三种方式本人亲测,欢迎大家选用。所涉及软件未提供下载,请google搜索;ssh账号获取办法也请搜之,我这次暂时使用鲶总的vps账号。
        事件结果:可以访问国际互联网,可以认识世界。
===================update==========================
        补充第四种方法:使用ssh+myentunnel+chrome+proxy swithcy。具体办法不在赘述了,google之,需要注意的是,在第一次使用新的网络连接时,都需要手动配置一次ie的“自动配置脚本”。比如,针对局域网连接,设置了ie的“自动配置脚本”,但换成3g网卡后,发现proxy switchy失效了,这时需要针对usb的3g上网卡连接,手动配置一下“自动配置脚本”(可参考已有的局域网连接里的设置)才行。

手机在于折腾

        先缅怀一下远走的touch 3g。。。
        新换了Android系统的HTC Legend机器,水深火热地折腾了两天,现在总结有关事宜。
        对于自己,拿到手机后除了软件安装,就是要学会刷机。wm刷机可以换字体,换精简系统;android刷机更是有必要,比如获得root权限。获得root权限能干嘛?比如完整备份系统的sprite backup软件,锁定cpu频率的set cpu软件都需要root权限来运行。目前来说要获得root权限,华山至今只有一条路,就是刷具有root权限的rom。刷rom之前又要准备好金卡(goldcard),因为htc为了限制销往不同地区的手机相互刷rom(与最初dvd锁区一样),在刷机时会检测本机的shipment信息,刷非本地区的rom就会出错。金卡能够骗过这个检测步骤,达到天下rom随便刷的目的。所谓的金卡其实就是具有特殊引导信息的tf卡。下面列出有关几个问题的操作方法,本人亲测,放心使用。

  • 金卡制作方法:英文原版中文配图版。ps:1、制作金卡的tf卡理没有容量要求,质量好即可;2、制作金卡的过程不会影响卡上原有的内容;3、如果tf卡之前做过了app2sd,也就是拥有fat32和ext3分区,那么必须删除ext3分区,全部格式化成fat32后才能继续制作,否则肯定失败;4、验证办法:制作完成后拔出/插入tf卡,如果仍然能认出来,则制作成功;如果提示tf卡损坏(手机上)或无法识别(电脑上)则制作失败;5、金卡制作好以后,就可以用官方的ruu程序刷原版rom(不带root权限)了;
  • root你的android(刷具有root权限的rom):英文原版中文配图版。ps:1、亘古不变的一句:刷机风险(手机变砖)自负;2、一般具有root权限的rom都是国外首发的,国内高手会在其基础上按个人喜好进行定制,喜欢原版rom(当然已经具有root权限)的朋友还是使用英文教程里的rom为好;3、刷完rom之后机器就有了root权限,以后再刷其他rom的步骤大致如下:用usb线连接手机;将具有root权限的新rom(*.zip)拷贝到存储卡(确保是金卡)根目录;关机,然后按住回退键开机;选择bootloader;选择recovery(手机显示红色三角形,无响应);运行前面的脚本文件recovery-windows.bat(进入Android system recovery菜单);选择flash zip from sdcard;选择你刚才传入的rom文件(*.zip);开刷;4、上面的步骤熟练后手机基本5分钟内可刷好,达到js级水平;
  • 获得root权限后,可以进行app2sd。方法:中文配图版。ps:1、android默认程序都装在机器的rom中,app2sd就是允许你将程序装在存储卡中;2、app2sd的原理:存储卡分成两个区,一个fat32格式,用作普通存储卡,一个linux的ext3格式,用来安装程序。app2sd的过程相当于将原来手机中存储程序的app文件夹转移到卡上,然后用ln命令将原目录与新目录做符号链接;3、具有root权限的rom一般都可以自己完成app2sd,如上面链接中方法所示;4、app2sd后的好处,不受限于手机本身的rom大小,理论上能安装和你存储卡容量一样多的程序;恢复出厂设置或重刷rom后,在adb shell下将你卡上的ext3分区mount进系统,用ln做同样的链接,你原来所有的程序就都恢复了,不用重新安装。
  •         据传5月19号即将放出的android 2.2会原生拥有app2sd功能,所以不放心的朋友可以等等再说~

    t60 reborn

    incident flashback:上周t60运行时感觉风扇有点异常,转的声音比较痛苦,但也不知道它想要什么,就没管;第二次开机时风扇惊叫一声,就罢工了,停留在Fan Error的画面,无法进系统;
    casue investgation:google以下内容:t60 fan error。找到同样案例,描述是风扇缺油了,准备动手一试;
    reborn procedure:两元店买来缝纫机油一瓶,药店买来带针注射器一只,百脑汇买来高级(据说)星牌导热膏一瓶,淘宝买来interchangeable precise manual tool set一套,花费2+0.5+10+23=35.5元。让风扇一次喝个饱。。。其实也就一滴油不到~再次开机,cpu温度39度,重启了两次风扇还是不转,于是开始玩疯狂越野.swf,过了一会风扇终于转了。细听就跟从大瓶里往出到酸奶一样——静谧无比呀,哈哈~
    background information:蓝快t60风扇要加400元,还是换购,联想售后的价格和产品的品质真不成正比。

    用google sync管好你的联系人

            在阿帆的唆使下完成了一项壮举。
            现在人们不怕丢手机,怕的是丢了上面的联系人。虽说大部分手机都能利用软件把联系人备份到电脑上,但如果电脑不在跟前或者硬盘坏了。。。如果你经常使用gmail,还有着一个不是太旧的手机,那google sync刚好适合你。
            以现在使用的windows mobile手机为例,可以按照以下步骤完成手机联系人和gmail联系人的同步:

      1. 打开ActiveSync;
      2. 点击“设置您的设备与之同步”;
      3. 填写gmail地址,并把“尝试自动检测Exchange Server”选项去掉,下一步;
      4. 服务器地址填写“m.google.com”,勾选ssl,下一步;
      5. 用户名填写完整gmail地址,填写密码,域留空,下一步;
      6. 如果之需要同步联系人,则只勾选“联系人”,完成。

            以上步骤是添加同步服务器,进行一次即可。联网之后一会就可完成同步工作。手机联系人会全部添加到gmail的通讯录中,根据自己需要可以与邮件联系人进行合并,整理完成后,再次与手机进行同步,345个联系人就大功告成了。这下手机的联系人中不仅有了电子邮件地址,连我gmail账户里的头像都同步下来了。
            现在google sync支持iphone,windows,nokia,blackberry手机平台,所以即使以后换手机,也可以快速同步联系人了。
            ps:同步时会将上次同步后改动一方的内容同步到未改动的一方。比如同步后,将手机上的联系人全部删除,同步,那么gmail里的联系人也会被删除;
            pps:如果想要重新从gmail上获得所有联系人,则需要:1、删除手机上所有联系人;2、删除m.google.com的同步服务器;3、重新建立m.google.com的同步服务器;4、同步;
            ppps:进行实验前强烈建议首先分别备份本地和gmail上的联系人,可别怪我没提醒哟。

    Happiness only real when shared:电脑通过PPC上网

            如果你的WM手机可以上网,而又想在出差找不到网络的时候让电脑上网,推荐你看这篇文章;如果你拥有移动的不限流量包月卡,不知道怎么发挥它的最大作用,强烈建议你看这篇文章;如果你对移动表示不满,想尽可能的减少在它身上的损失,那你千万别错过这篇文章。
            笔记本插上3G手机卡后可以无线上网,网速客观,但是资费也很可观。无米之人自有吃饭的办法,现在就看看如何通过移动手机卡的GPRS/EDGE上网方式,带动电脑上网。就跟《Into the Wild》里的那句话一样,happiness only real when shared,当你的电脑能通过手机共享上网它俩才是幸福的。针对本文手段,要达成目的,必备条件如下:

    1. 具有Windows Mobile 6.0以上操作系统的手机一个;
    2. 移动手机卡一张;
    3. 安装了ActiveSync 4.5版本以上软件的电脑一台。

            现在,把大象塞到冰箱里总共分为以下几个步骤:

    1. 在ActiveSync的“连接设置”里,去掉“允许USB连接”的选择,也就是在将手机通过usb线连接电脑的时候不进行同步;
    2. 用usb线把手机和电脑连起来。从手机上“开始”–>“程序”–>“Internet共享”,其中“PC连接”选择USB,网络连接选择你手机的上网连接,然后点击“连接”;
    3. 这时电脑会发现新的本地连接(Windows Mobile-base Internet Sharing Device),不用管它。在IE中设置代理,http代理为10.0.0.172,端口80;其它软件也许要设置同样的代理,或者在软件代理中选为“使用IE设置”(设置这个的目的是让软件走cmwap方式上网,避免产生cmnet流量,包月上网部分wap/net的同学可以无视);
    4. 没了,大象已经塞到冰箱里了。

            ps:安装了win7的系统可以略过上面所有涉及到ActiveSync的步骤,因为win7已经内置了Windows Mobile Device Center。
            如果你使用的是5块钱或10块钱包流量的移动卡,记得上网后不要在线看大片,免得移动后来问你要米,出差时查资料,收发邮件,聊qq,看博客订阅都是没有问题的;如果你的移动卡是包月不限流量的,那么,你看着办吧。
            经测试,可进行ftp、http下载(暂不能使用BT下载),通过网页代理浏览网站(暂不能使用VPN代理软件),EDGE上网速度可达20-30KBps,经过缓冲后,观看新浪在线高清大片也是可以的。

    二套房

            淘宝购托架,赛格买硬盘,电脑在于折腾。
            抽走光驱,给小黑加了第二块硬盘WD5000BEVT,320+500,地方好大哟~现在本本是双(核)cpu,双内存,双硬盘,(暂时)双系统,差不多到头了。如果SSD以后降价,小黑还在服役的话,那就是最后的折腾了。

    Deep Zoom(Silverlight) VS GigaPan(Flex)

            自己用相机照了照片,想与全世界的人分享,没问题,有FlickrPanoramio甚至google的street view。但通常受限于网络原因,都是把照片resize之后再上传,一些精彩的全景或者大幅的照片就没办法与他人分享了。在相机厂商疯狂追求千万像素的时代,一些大分辨率照片当然也忍不住向大伙展示了。在这方面就要RIA来做了,两大平台现在都有类似的应用,大家可以比较一下:
    Flex的GigaPan.org
    Silverlight的SeaDragon
            ps1:若要上传自己的照片,gigapan需要注册账户,然后下载一个客户端工具,安装后30m左右,且要求上传照片像素(长*高)在5000万以上;seadragon只需要一个图片的url即可,生成的程序可以嵌入到支持html的页面中;
            ps2:seadragon使用的是Silverlight的Deep Zoom技术;
            ps3:上传一张照片(07年许巍演唱会散场),大家看看seadragon的效果:)