====== Tinc for FreeBSD ====== 由于OpenVPN到国外的连通性出现问题后, 考虑到OpenVPN+proxy类再加密会有性能损失, 所以改用 [[http://www.tinc-vpn.org/|Tinc]]. Ports里面的Tinc是只有Stable版本, 但是有些打算用到新功能在prerelease版本内, 所以自己编译. 需要依赖openssl和lzo, 现在ports里面安装 security/openssl 和 archivers/lzo2 ./configure --prefix=/usr/local/tinc --with-openssl=/usr/local --with-lzo=/usr/local make all install 以上简略带过. ==== 服务端 ==== 安装好后的tinc在/usr/local/tinc 执行以下命令为服务器生成密钥 /usr/local/tinc/sbin/tinc init server 配置文件在/usr/local/tinc/etc/tinc, 进入该目录 编辑tinc.conf Name = server Device = /dev/tun10 TunnelServer = yes 编辑tinc-up #!/bin/sh /sbin/ifconfig tun10 up /sbin/ifconfig tun10 inet 10.255.1.1/24 /etc/rc.d/pf reload 编辑hosts/server, 在顶部添加 Compression = 10 Subnet = 0.0.0.0/0 __复制 client 端的 etc/tinc/hosts/client 到 etc/tinc/hosts/, 该步骤可以先配置客户端后再完成.__ ==== 客户端 ==== 生成密钥 tinc init client 配置 etc/tinc/tinc.conf Name = client Interface = tun10 ConnectTo = server MaxTimeout = 5 配置 etc/tinc/hosts/client, 头部添加 Compression = 10 Subnet = 10.255.1.1 复制 server 端的 etc/tinc/hosts/server 到 etc/tinc/hosts/, 修改头部 Address = server_域名或者ip地址 Compression = 10 -----BEGIN RSA PUBLIC KEY----- ..... ==== NAT ==== pf.conf scrub all no-df random-id fragment reassemble nat on $ext_if from { 10.255.1/24 } to any -> ($ext_if) ==== 启动 ==== 附件为FreeBSD rc.d 脚本, 用于启动 tincd 调试可采用 tincd -D -d3 或 tincd -D -d4 {{:freebsd:tincd|FreeBSD tincd rc.d 启动脚本}} {{tag>freebsd tinc vpn}}