ssh tunnel

感覺網管跟RD就像一個守門的,
另外一個進攻的….
今天原本開放的機器突然被限定,
只好連到跳板….

開發機 A  —>   資料機 C  被擋,
程式卻放在開發機 A,
所以只好 ssh tunnel 開發機 A –> 跳板機B  —>   資料機 C …

Raspberry Pi router

故事發生在去年底,
之前入手的 Raspberry Pi 在拔 hdmi 時,
不小心把電容一起扯斷了,
真是整個悲劇,
由於原本 blog 是架在上面的,
後來只好想辦法轉移到中正的機器,
剛好前陣子公司有人在團購 Raspberry Pi 2,
直到昨天才入手.
這個東西真是好物,
記憶體已經到達 1G,
CPU 又是 Cortex-A7 900MHz,
只賣 1200 是否太佛心?

昨晚在想 Raspberry Pi 2 效能既然已經是如此,
並且我 blog 也已經搬到中正機器,
考慮到頻寬與效能,
我已沒打算再搬回去XD,
所以這東西我打算朝兩步驟前進,

1. 當 router.
2. 當 dlna server.

所以先準備實踐第一步,
網路線只有一條沒關係,
買個 dlink 300 多塊的 switch (8埠),
把 Raspberry Pi 的網路線插上去.

由於我家是光纖到府,
用的機器是 Sumitomo FTE6086,
這個沒有 router 功能,
只有 switch 介面,
連出去的就是光纖孔,
所以把 dlink switch 再用一條網路線和 FTE6086 連接起來就好了.
硬體設定就此結束.

軟體設定就參考網路有關把 Raspberry Pi 變成 無線分享 ap,
不過我沒有要無線功能,
所以設定上不會把 wlan0 forward 到 ppp0,
而是 eth0.

1. 修改 /etc/network/interfaces:
註解掉 eth0 auto 那行,
改成 –>
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0

2. sudo apt-get install isc-dhcp-server :
裝完後,
修改 /etc/default/isc-dhcp-server.

ddns-update-style none;
default-lease-time 86400;
max-lease-time 86400;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.50 10.0.0.254; //2~50 可以保留給 static
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
option routers 10.0.0.1;
option domain-name-servers 168.95.1.1,8.8.4.4,8.8.8.8; // 第一組是種花電信的 dns
}


host pc {
hardware ethernet 11:22:33:44:55:66;
fixed-address 10.0.0.2; //static ip
}

修改完成後,要接著改 /etc/default/isc-dhcp-server

DHCPD_CONF=/etc/dhcp/dhcpd.conf
INTERFACES=eth0

sudo service isc-dhcp-server start

3. sudo apt-get install pppoe pppoeconf:
裝完後,
執行 sudo pppoeconf
依照步驟過程會要你輸入帳號密碼,
打完後他就會連上線了.

4.
設定 /etc/sysctl.conf

net.ipv4.ip_forward=1

5.
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -i ppp0 -o eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT

su 成 root 執行 iptables-save > /etc/iptables.ipv4.nat

在 /etc/rc.local exit 之前,
加入 iptables-restore < /etc/iptables.ipv4.nat
結束….

php reference

通常寫 C, C++,
說要不用到指標或是C++參照,
好像不太可能,
php 就真的不常用到,
不過指標真的是個好用的東西,
昨天遇到的問題是,
類似 wordpress的分類可以有階層架構,
但對應關係在資料庫是一維的,
怎把一維的資訊轉換成皆成架構呢?
這問題以前在寫C++有遇過,
那時就是用指標的解法,
寫 php 就換了腦袋了 XD,
幸好今天起床有想起來,
php 也有 reference 可用~
總之這時 php reference 就是好用的時候了,
code 如以下,


array(
'parent_id' => null,
'name' => '0',
),
'b' => array(
'parent_id' => null,
'name' => '1',
),
2 => array(
'parent_id' => 1,
'name' => '2',
),
3 => array(
'parent_id' => 4,
'name' => '3',
),
4 => array(
'parent_id' => 'b',
'name' => '4',
),
);

$pivot = -1;

foreach ($arr as &$value) {
$value['children'] = array();
if (is_null($value['parent_id'])) {
$pivot += 1;
continue;
}
if (!array_key_exists($value['parent_id'], $arr)) {
continue;
}
$arr[$value['parent_id']]['children'][] = &$value;
}

print_r(array_slice($arr, 0, $pivot + 1, true));

大地神曲

    太初之子啊!你可知道神是誰?

    你可知道大地歌曲的意義?

    你可想如神一樣有分別善惡的能力?

    蔚藍的長空,無垠的大地,

    我將教會你分辨東西;

    巍峨的高山,清涼的溪流,

    我將教會你誰高誰低。

    如果你願意,啟開雙眼,

    世界本來大小對立、黑白分明;

    如果你願意,想想自己,

    世界本無音樂笑聲與恩情。

    神不是天,神與天不一;

    神不是地,神與地不一;

    神不是百川眾流,不是萬鳥群飛。

    神高居穹蒼,與萬物截然對立。

    …………………………

    太初之子啊!饒恕無知的世人吧!

    你是光耀的天堂,你是黑暗的地獄!

    在女武神的呻吟中,

    請停下駕禦著黑魔龍的黃金戰車,

    請不要將這已經顫抖的宇宙毀滅!

ext4 一個目錄下可以擁有的檔案數目

其實限制不在於單一目錄,
而是是否達到 inode 上限,
inode 上限不是固定的,
不過在 mkfs 階段可以指定,
大於 block 數量多出的 inode 會無法使用,
到了 ext4 後,
解除了 ext3 最大子目錄 32000 限制,
但是一樣會受到 inode 上限限制.
當然這點是可以理解的,
因為目錄本身也會佔據 inode.