Skip to content

Instantly share code, notes, and snippets.

@huilapman
huilapman / .vimrc
Last active September 28, 2018 03:51
set nocompatible " required
filetype off " required
set nofoldenable
" set foldlevel=99
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
@huilapman
huilapman / mac_osx_packet_filter.md
Created April 28, 2018 06:02
Mac OSX Packet Filter

Mac OSX 內建防火牆 PF 使用筆記]

你知道 Mac 本身也有內建防火牆嗎?
我指的不是 System Preferences 裡面有的防火牆(那個屬於 Application Firewall 指定程式進出的),而是可以像 linux iptables 可以設定規則的防火牆。

它叫做 Packet filter 簡稱 PF,因為 Mac OSX 屬於 BSD 系列的系統
自從 10.7 (Lion) 之後就有內建 PF(在這之前是 IPFW),只是預設是關閉的。

官方文件寫的非常少,大部分要參考 FreeBSD 的文件或者 OpenBSD 的文件,
大部分這二者看到的文件跟語法大多都支援。

@huilapman
huilapman / mysql_start_up_error_in_mac.md
Last active April 28, 2018 06:03
mysql start up error in mac

MySQL ERROR! The server quit without updating PID file

  MacBook-Pro$ sudo /usr/local/mysql/support-files/mysql.server start
  Starting MySQL
  . ERROR! The server quit without updating PID file 	(/usr/local/mysql/data/xxxx.pid).
  MacBook-Pro$ sudo chown -R _mysql:_mysql /usr/local/mysql/
  MacBook-Pro$ sudo /usr/local/mysql/support-files/mysql.server start
  Starting MySQL

. SUCCESS!

@huilapman
huilapman / openssl_apache_tomcat.txt
Last active April 24, 2018 02:08
OpenSSL + Apache + Tomcat Connector
# ======================
# Download Files
# ======================
cd ~
curl -O https://www.openssl.org/source/openssl-1.0.2o.tar.gz
curl -O http://ftp.cuhk.edu.hk/pub/packages/apache.org/httpd/httpd-2.4.33.tar.gz
curl -O http://apache.website-solution.net/apr/apr-1.6.3.tar.gz
curl -O http://apache.website-solution.net/apr/apr-util-1.6.1.tar.gz
curl -O https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz

Ubuntu Update

1. sudo apt-get update
2. sudo apt-get install -y apt-transport-https ca-certificates

Docker

1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
3. sudo apt-get update
4. apt-cache policy docker-ce
===========================================

IPTables

在玩 IPTables 以前我們必須先了解一下,您所下的 iptables 防火牆規則對封包進行過濾、封包處理、封包狀態變更、NAT、封包 Qos...等,這些工作其實是核心 (kernel) 層級 Netfilter 在處理的,而 iptables 只是一個使用者端的工具讓您方便對 Netfilter 操作而以,以下是對於玩 iptables 時必須先了解的名詞及相關常用指令。

Netfilter 五種封包處理規則

必須注意的是 INPUT 及 Forward 處理封包的路徑是不同的,也就是說 Forward 處理的封包會略過 INPUT 及 OUTPUT 規則

INPUT:經網卡進入的封包 OUTPUT:經網卡出去的封包 FORWARD:經網卡進入 / 出去轉送的封包
PREROUTING:改變經網卡進入的封包狀態 ( DNAT / REDIRECT ) 
POSTROUTING:改變經網卡出去的封包狀態( SNAT / MASQUERADE )
@huilapman
huilapman / iptables_rules.md
Last active January 18, 2018 02:44
25 Most Frequently Used Linux IPTables Rules Examples

1. Delete Existing Rules

Before you start building new set of rules, you might want to clean-up all the default rules, and existing rules. Use the iptables flush command as shown below to do this.

iptables -F
(or)
iptables --flush

2. Set Default Chain Policies

@huilapman
huilapman / gdb.md
Last active June 2, 2017 16:22
gdb on macOS Sierra
#include <iostream>
using namespace std;  

int divint(int, int);  
int main() 
{ 
   int x = 5, y = 2; 
   cout << divint(x, y); 
 
@huilapman
huilapman / main_kitura.swift
Last active February 24, 2016 07:57
Kitura Main
import KituraRouter
import KituraNet
import KituraSys
let router = Router()
router.get("/") {
request, response, next in
response.status(HttpStatusCode.OK).send("Hello, World!")