Category: Networking

  • Gotcha AWS NAT instance

    It’s quite straight forward when creating an NAT instance for a private subnet in AWS, eg. search for amzn-ami-vpc-nat-hvm for the AMI then launch it into a public subnet. However I need to disable source/destination check before the NAT instance becomes available in the drop down list of destinations of a route table: 🙂

  • 土法制造 DDNS 完整版

    节日快乐! 最近我又对之前的脚本完善了一下, 添加了对 CloudFlare DNS API 的呼叫, 这样 DDNS 才名副其实吧: #!/bin/bash function update_dns { logger ‘Prepare to update DNS…’ curl -i https://www.cloudflare.com/api_json.html \ -d ‘a=rec_edit’ \ -d ‘id=DOMAIN_ID’ \ -d ‘tkn=THIS_IS_MY_KEY_GO_GET_YOURS’ \ -d ’email=MY_EMAIL’ \ -d ‘z=raynix.info’ \ -d “content=$1” \ -d ‘type=A’ \ -d ‘name=XXX’ \ -d ‘ttl=1′ |logger } url=’http://direct.raynix.info/ip.php’ last=’/tmp/extip’ rcpt=’MY_EMAIL’ extip=`curl…

  • 土法制造 DDNS

    自从上次我用树莓派(raspberry pi)做了个家用服务器后, 动态域名解析(DDNS)就从一种懒得过问的技术变成必须的解决方案了, 因为家里的 ADSL 的 IP 地址不是固定的, 偶尔会变化. 我看了若干现成的 DDNS 服务, 虽然有免费选项, 但限制颇多, 甚至有的要插播广告… 其实 DDNS 没啥技术含量的东西, 基本逻辑就是在客户端发送请求到服务端, 一旦发现客户端的外部 IP 地址已变, 就更新对应的 DNS 记录. 首先来写客户端, 使用的是我擅长的 Shell Script: #!/bin/bash url=’http://direct.raynix.info/ip.php’ last=’/tmp/extip’ rcpt=’[email protected]’ extip=`curl $url` echo $extip |diff $last – if [ $? == 0 ]; then exit 0 else logger ‘last IP: ‘ `cat…

  • 笔记: Linux 简单的网关脚本

    这个现在用到的机会不多了, 因为无线路由器什么的都是现成的网关了. 但如果要在一台 Linux 主机上建一些虚拟机, 可能还用的到. eth0 是外网网卡, br0 是局域网网桥. #!/bin/sh #this is /etc/network/if-up.d/gateway PATH=/usr/sbin:/sbin:/bin:/usr/bin # # delete all existing rules. # iptables -F iptables -t nat -F iptables -t mangle -F iptables -X # Always accept loopback traffic iptables -A INPUT -i lo -j ACCEPT # Allow established connections, and those not coming from…

  • Ubuntu Server 11.04 + TP-LINK WN821N

    用Ubuntu Desktop版, 连接wifi非常容易, 甚至比Windows还容易: 因为你基本不用去找wifi无线网卡的驱动了. 但如果是只有CLI命令行的Server版呢? 当然有人会反问, 谁会用无线方式连接一台服务器呢? 我有一套旧的Atom330, 闲着也是闲着, 就拿它做个测试服务器玩玩. 但是我又不能容忍它在身边的嗡嗡声(风扇不够高级呵呵). 于是我把它放到阳台上, 只连上电源线, 网络就靠wifi了. 首先要看看Ubuntu Server是否支持WN821N这个USB-wifi适配器. 接好后, 运行: $ifconfig -a 如果结果里有’wlan0’的一段, 说明系统已支持. 我安装的Ubuntu Server 11.04版无需修改已支持WN821N. 下一步是修改网络接口配置文件/etc/network/interfaces. 未经过配置的interfaces文件大致是这样吧: auto lo iface lo inet loopback 修改后的如下(修改需要sudo): auto lo iface lo inet loopback auto wlan0 iface wlan0 inet static address 192.168.1.18 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0…

  • Linux CLI环境下简单的网络扫描方法

    现在有了无线, 不像从前, 一根线连接一台设备. 也因此有了’蹭网’等新事物. 想查一下自己的局域网里都有些什么东东么? 当然, 有很多现成的有GUI的工具可以用, 不过要想露一手(特别是在女生面前), 还是用CLI吧. 192.168.1.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.54/2.54/2.54 192.168.1.76 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.08/0.08/0.08 192.168.1.100 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 1423/1423/1423 192.168.1.102 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 39.6/39.6/39.6 192.168.1.104 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.55/2.55/2.55 上面的结果来自如下的命令组合: $fping -c1 -g 192.168.1.0/24 2>&1…

  • 随时随地管理Linux服务器

    既然有了3G, 随时随地能上网了, 那很自然的我就希望能用手机管理服务器. Android手机本身就是Linux的一种, 连接另一台Linux服务器只是顺水行舟. 需要用到SSH客户端, 我的选择是ConnectBot, 免费的. 在HTC EVO4G上的具体步骤如下: 启动ConnectBot 不要急于连接, 先按menu键, 然后点”manage pubkeys”管理密钥. 在密钥界面(目前是空的), 再按menu, 然后点generate/建立 在接下来的界面内输入密钥的基本信息, 名字, 加密位数等等. password是可选的, 不过最好还是设置一个简单的 然后界面会要求你在方框内乱画一气, 以生成一个随机数字 密钥建好了, 下面要把对应的公钥放到服务器上, 这样就不需要password口令验证了. 按住密钥, 在弹出的菜单选”copy public key”, 就是复制公钥 按返回键( <- ), 建立服务器连接, 格式就是通用的[email protected] 第一次连接时还是要输入password的, 用软键盘很容易出错, 🙂 登录后, 输入如下命令 echo “PUBKEY” >> .ssh/authorized_keys 其中, 上面引号内的PUBKEY是你的公钥, 也就是需要按menu键, 然后选择paste/粘贴. 上面第7步复制的公钥就出来了. 之后就可以logout, 再试试用公钥登录啦. 另外,…

  • 本机上的DNS缓冲,只要两步

    你还在用电信服务商提供给你的DNS服务么?其实只要两步,就可以在自己的电脑上跑起DNS服务来,前提是,你用的是Linux系统(当然Windows下也许也有办法的)。 参考链接:Dnsmasq 第一步:安装dnsmasq。dnsmasq是零配置的一个本地DNS cache程序。 sudo apt-get install dnsmasq 安装完成后,你可以选择修改配置文件; sudo gedit /etc/dnsmasq.conf 如果你是懒人或者生手,那么缺省的或者空白的配置文件已经能够满足你的需求了。 第二步:修改resolv.conf。样本可以是这样的: nameserver 127.0.0.1 nameserver 208.67.222.222 nameserver 208.67.220.220 这样写的原因是,把127.0.0.1放在第一行,这样才保证dnsmasq得到DNS请求并处理;第二、三行的是OpenDNS的两个IP地址,dnsmasq会从这里读取并在没有本地数据的情况下(例如第一次访问某个网站)将DNS请求转发到真正的dns服务。 这样安装就完成了。首先重新启动dnsmasq: sudo /etc/init.d/dnsmasq restart 然后确认dnsmasq在监听DNS端口: sudo netstat -ltp | grep domain 如果结果中有类似这样 tcp        0      0 *:domain                *:*                     LISTEN      28289/dnsmasq 就说明dnsmasq在工作了。下面用浏览器访问一下你收藏的网址吧,是否感到速度快了许多呢?另外一个好处就是你现在更加的independent了,不必看DNS服务商的脸色。