使用mac系统中自带的tftp服务端

由于调试一些设备,可能需要使用到tftp服务(这些设备上只有tftp客户端,用以更新程序做调试用)。mac上有自带的tftp服务端软件。 配置和开启操作如下:

vi /System/Library/LaunchDaemons/tftp.plist 修改其中的tftp共享的根目录。在ProgramArguments下面的array中。默认的值是 /private/tftpboot。

启动tftp:
$ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist

关闭tftp:
$ sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist

如果要设置为开机自动启动和自动关闭, 则将-F参数替换为 -w参数。

(全文完)

macos系统中用命令行进行网络设置

工作中有时候需要连接一个电路板进行调试。 有时候需要设置ip地址。 总是通过GUI的方式去设置是很烦恼的。 最好的情况当然是执行一个命令就搞定。

查看当前的网络列表:
networksetup -listallnetworkservices

输出结果中包含:
Thunderbolt Ethernet
Wi-Fi

我需要对通过thunderbolt转接的网络接口进行设置,那么设置为手动:
sudo networksetup -setmanual “Thunderbolt Ethernet” 192.168.1.2 255.255.255.0 192.168.1.1

设置为通过dhcp获取:
networksetup -setdhcp “Thunderbolt Ethernet”

参考文章:
http://blog.csdn.net/tangz97/article/details/8508403

(全文完)

用openssl生成SSL使用的私钥和证书,并自己做CA签名

本文记叙的是一次基于SSL的socket通讯程序开发中,有关证书,签名,身份验证相关的步骤。 我们的场景下,socket服务端是java语言编写的,客户端是c语言。使用了一个叫做matrixssl的c语言库。自己做CA签名,不等同于“自签名”。 自签名的情况,RSA的公钥私钥只有一对,用私钥对公钥证书做签名。而我们的场景是,自己做CA,有一个CA的公钥私钥对。 而socket的服务端也有一个公钥私钥对。 用CA的私钥对socket服务端的公钥证书做签名。

具体的操作步骤如下:

生成CA的私钥key:

openssl genrsa -out ca.key 1024

(这里我们没有用des3加密。 可以增加一个-des3参数加密,详情可以man genrsa)

生成CA的证书文件:

openssl req -new -x509 -days 36500 -key ca.key -out ca.crt

(这一步的时候需要在提示之下输入许多信息,包括国家代码,省份,城市,公司机构名等)

生成server端的私钥key:

openssl genrsa -out server.key 1024

生成server端的req文件(这一步生成的req文件,包含公钥证书,外加身份信息,例如国家,省份,公司等。用它提交给ca,让ca来对它做签名 ):

openssl req -new -key server.key -out server.csr

用CA的私钥对server的req文件做签名,得到server的证书:

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

(注:如果第一次使用openssl,报告一些相关的文件找不到之类的错误,可能需要先执行2个命令:touch /etc/pki/CA/index.txt 和 echo ’01’ > /etc/pki/CA/serial)

继续阅读“用openssl生成SSL使用的私钥和证书,并自己做CA签名”

tcpdump笔记

sample : tcpdump -i lo -s0 -SnnXx port 443

常用参数:
-i 指定抓哪个网卡的数据包
-S tcp包中的seq用绝对值。 如果不加这个参数,就会用相对值。可能会看到从1开始的seq。
-nn 不显示service名,用数字显示port(不会把443显示成HTTPS)
-x 不只显示包头信息,同时显示包的内容数据。 如果不加这个参数,就只显示包信息(包括标志位, seq, ack, length等信息)。
-xx 包括链路层的header也显示出来。
-X 在显示出的包数据内容的右侧, 增加转换为ASCII的显示。
port 指定要抓的包的端口(源或目的. 如果要只抓源或目的,可以写做 dst port 或src port)