2013年12月26日 星期四

iPad Air 入手

還記得 iPad 2 在台灣發售的那天,早上七點多就趕到燦坤門口排隊,中午就買到iPad2,當時心情真的好 High ~。

一晃眼就快三年了,雖然iPad2還是頭好壯壯,但看到又輕又薄的 iPad Air上市,還是好想要哦,反正 iPad2 可以送給家人用,不會浪費,那就衝吧。

這次台灣上市,因為上班沒時間去排隊,就直接上官網訂了。其實Apple商品的出貨速度算挺快的,16號早上十點多訂貨,18號出貨,從深圳寄到台北,20號就到家了,看mobile01討論區,還有人更早拿到iPad Air的。摘錄 TNT 的貨件追蹤資料如下:
日期時間地點貨件狀態
20 Dec 2013 15:08:59 Taipei City 貨件完成送達 
20 Dec 2013 07:37:00 Taipei City 貨件將被帶出遞送 
19 Dec 2013 19:34:01 Taipei City 站所收到貨件 
19 Dec 2013 19:34:01 Taipei City 貨件轉由合作廠商運送 
19 Dec 2013 17:05:00 Taipei City 理貨 
18 Dec 2013 23:34:16 Hong Kong 理貨 
18 Dec 2013 16:56:00 Shenzhen 原產地發貨 
18 Dec 2013 16:46:41 Shenzhen 理貨 
18 Dec 2013 00:08:37 Shenzhen 取件完成

用了一小時候的心得:

Retina螢幕太清楚了,用過之後,再回頭看 iPad2的螢幕,真的覺得這錢花的值得。

跟iPad2比較,真的好輕,不過我一手拿iPad Air,一手拿iPad mini retina,兩個重量還是有點差,iPad mini retina感覺不到重量,iPad Air拿一個小時手還是會有感覺。

透過 AirPlay 用 Apple TV 撥影片,感覺好像變得更順了,不知道是不是錯覺,哈~。

下次買Apple的產品,我可能還是會上網直接訂,有問題可以直接退貨這點,讓我很放心。




同時買了 iPad Air 與 iPad mini retina,
這個月要省點花囉



Wi-Fi 64G 無誤


開箱~ YA~

按鈕顏色一致,小細節都有注意到

moshi VersaCove 保護殼 


觀賞角度


打字角度


閱讀角度





2013年12月25日 星期三

Install DHCP server on ubuntu 12.04

Below list the procedures to setup DHCP server on ubuntu 12.04 for my machine.

1. install DHCP server
sudo apt-get install isc-dhcp-server

Configuration of Restricted NAT


Here I provides two example to setup the Address-Restriced NAT in ubuntu 12.04 by using iptables and ipset.

1. for a fixed client ip address
 1    iptables -t nat -A POSTROUTING -p UDP -o $EXTIF -j SNAT --to-source 
 2    $EXTIP
 3    iptables -t nat -A PREROUTING -i $EXTIF -j DNAT --to-destination 
 4    $CLIENTIP
 5    iptables -A FORWARD -i $EXTIF -j DROP
 6  
 7    ipset -N RES_CONDITION ipporthash -exist
 8    ipset flush RES_CONDITION
 9    iptables -A FORWARD -o $EXTIF -j SET --add-set RES_CONDITION dst,
10    src
11    iptables -I FORWARD 1 -i $EXTIF -m set --match-set RES_CONDITION 
12    src,dst -j ACCEPT


Reference:
  • iptables usage
  • ipset usage

2013年12月19日 星期四

[轉] container_of 宏的說明

原文地址:container_of()宏 作者:迷墙人

在学习Linux驱动的过程中,遇到一个宏叫做container_of。
该宏定义在include/linux/kernel.h中,首先来贴出它的代码:

apt-get install 時發生 fqdn 的錯誤解決方式

使用 sudo apt-get install xxxx 時,總是會出現下列錯誤訊息
Your system needs to have a fully qualified domain name (fqdn) in
order to install the var-qmail packages. 
Installation aborted. 
dpkg:在處理 qmail (--configure) 時發生錯誤:
 子程序 installed post-installation script 傳回了錯誤退出狀態 1
dpkg:因相依問題,不能設定 qmail-run:
 qmail-run 相依於 qmail (>= 1.06-2.1)﹔然而:
  qmail 套件尚未設定。
dpkg:在處理 qmail-run (--configure) 時發生錯誤:
 相依問題 - 保留為未設定
No apport report written because the error message indicates its a followup error from a previous failure.

問題原因在於系統沒有設定 FQDN,因此只要參考 /etc hostname 定義的名稱,修改 /etc/hosts,加入對應的 FQDN 即可。舉例如下:
/etc/hostname 的內容
albert-VirtualBox
/etc/hosts 的內容
127.0.0.1 albert-VirtualBox.haha.com albert-VirtualBox

修改完成後,記得要先使用 "hostname -f" 確認是否修改成功。


若仍是有問題,便重新安裝 qmail 吧,如下
sudo apt-get clean
sudo apt-get remove --purge qmail
sudo apt-get update
sudo apt-get install qmail

參考資料
  1. http://superuser.com/questions/511258/cannot-install-show-because-of-fqdn
  2. http://omoabobade.wordpress.com/tag/error-processing-qmail-run/

2013年12月16日 星期一

NAT Router 架設實驗記錄

以下將架設 NAT router 的過程作一記錄。

1. 首先準備一台有兩張網卡的電腦。
最方便的作法便是直接拿台Notebook,同時有wired與wireless。

2. 安裝軟體
先安裝 VM (此處我使用VirtualBox),並在 VM上安裝 ubuntu 12.04,接著要針對此 VM 分別新增兩張網路卡,一個與內網溝通,一張與 Internet溝通。網路的配置如下:


2013年12月13日 星期五

Virtual x86

http://copy.sh/v24/ 是一個使用 JAVAScript 來模擬作業系統的網頁,可以用來模擬 Linux, Dos, Windows, FreeBSD。並且在 github 提供了實作的原始碼。

模擬網路狀態,封包延遲與封包丟棄

以下為一個模擬網路狀態的script,可以模擬封包延遲與丟棄封包,並限制上下傳頻寬

2013年12月11日 星期三

[轉] iptables中snat和MASQUERADE的区别

轉載自 http://yhqlzz.blog.51cto.com/2557314/1019755,作者為 yanghaiquanyyy

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yhqlzz.blog.51cto.com/2557314/1019755
iptablessnat和MASQUERADE的区别
  解决方案
  iptables中可以灵活的做各种网络地址转换(NAT)
  网络地址转换主要有两种:snatDNAT
  snat是source network address translation的缩写
  即源地址目标转换
  比如,多个PC机使用ADSL路由器共享上网
  每个PC机都配置了内网IP
  PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip
  当外部网络的服务器比如网站web服务器接到访问请求的时候
  他的日志记录下来的是路由器的ip地址,而不是PC机的内网ip
  这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了
  所以叫做snat,基于源地址的地址转换
  DNAT是destination network address translation的缩写
  即目标网络地址转换
  典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip
  互联网上的访问者使用公网ip来访问这个网站
  当访问的时候,客户端发出一个数据包
  这个数据包的报头里边,目标地址写的是防火墙的公网ip
  防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip
  然后再把这个数据包发送到内网的web服务器
  这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了
  即DNAT,基于目标的网络地址转换
  MASQUERADE,地址伪装,在iptables中有着和snat相近的效果,但也有一些区别
  但使用snat的时候,出口ip的地址范围可以是一个,也可以是多个,例如:
  如下命令表示把所有10.8.0.0网段的数据包snat成192.168.5.3的ip然后发出去
  iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j snat --to-source 192.168.5.3
  如下命令表示把所有10.8.0.0网段的数据包snat成192.168.5.3/192.168.5.4/192.168.5.5等几个ip然后发出去
  iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j snat --to-source 192.168.5.3-192.168.5.5
  这就是snat的使用方法,即可以NAT成一个地址,也可以NAT成多个地址
  但是,对于snat,不管是几个地址,必须明确的指定要snat的ip
  假如当前系统用的是ADSL动态拨号方式,那么每次拨号,出口ip192.168.5.3都会改变
  而且改变的幅度很大,不一定是192.168.5.3到192.168.5.5范围内的地址
  这个时候如果按照现在的方式来配置iptables就会出现问题了
  因为每次拨号后,服务器地址都会变化,而iptables规则内的ip是不会随着自动变化的
  每次地址变化后都必须手工修改一次iptables,把规则里边的固定ip改成新的ip
  这样是非常不好用的
  MASQUERADE就是针对这种场景而设计的,他的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT
  比如下边的命令:
  iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE
  如此配置的话,不用指定snat的目标ip了
  不管现在eth0的出口获得了怎样的动态ip,MASQUERADE会自动读取eth0现在的ip地址然后做snat出去
  这样就实现了很好的动态snat地址转换
本文出自 “欢迎光临yhqlzz博客” 博客,请务必保留此出处http://yhqlzz.blog.51cto.com/2557314/1019755

2013年12月3日 星期二

AirPlay 測試心得

最近使用 PPS 播放影音時,無法與 Apple TV 進行 airplay,印象中之前是可以的,趁著今晚有空,針對 AirPlay 的互通性進行以下測試。

AirPlay 原理


基本概念


AirPlay 是一個用來與 Apple TV溝通的協定,可用 iOS 設備或 itunes將資料交給 Apple TV進行播放,其實作使用 Multicast DNS, HTTP, RTSP, RTP or NTP 等協定,並加上些許的修改。