ZMap 和 ZGrab 的基本安装和使用方法

本文以 Debian 10 为例,介绍如何安装并简单使用 Zmap 和 ZGrab 工具。


安装 ZMap

运行以下命令:

1
sudo apt update && sudo apt install zmap -y

安装 ZGrab

运行以下命令:

1
sudo apt install build-essential vim wget -y

在 Go 语言官网找到对应架构最新的压缩包,并通过 wget 下载,例如:

1
wget -O go.tar.gz https://golang.org/dl/go1.14.6.linux-amd64.tar.gz
1
sudo tar -C /usr/local -xzf go.tar.gz
1
vim ~/.profile

~/.profile 的最后一行添加:

~/.profile
1
2
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/go/bin/

更新环境变量:

1
source ~/.profile

安装 ZGrab:

1
2
3
go get github.com/zmap/zgrab2
cd $GOPATH/src/github.com/zmap/zgrab2
make

设置 alias:

1
vim ~/.bash_aliases

添加以下内容:

~/.bash_aliases
1
alias zgrab="/usr/local/go/bin/src/github.com/zmap/zgrab2/zgrab2"

使 alias 生效:

1
source ~/.bash_aliases

Read More

Debian & Ubuntu 服务器设置 IPv6 Tunnel

本文以在 Bandwagonhost 上的 Debian 10 系统为例,介绍如何设置 IPv6 Tunnel。本文同样适用于 Ubuntu 20.04。


注册 HE 帐号

首先前往 Hurricane Electric 的网站,注册一个帐号。

创建 Tunnel

注册后,在 User Functions 中,点击 Create Regular Tunnel,输入服务器地址,并选择合适的 Tunnel Server。选择完毕后,点击最下方 Create Tunnel 按钮。

服务器设置

点击网页上的 Example Configurations 选项卡,找到 Debian / Ubuntu,选择后会在文本框中显示配置,例如:

1
2
3
4
5
6
7
8
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address xxxx:xxx:xxxx:xxx::x
netmask 64
endpoint yy.yyy.yy.y
local zzz.zz.z.z
ttl 255
gateway aaaa:aaa:aaaa:aaa::a

复制网页上显示的配置,编辑服务器文件:

1
sudo vim /etc/network/interfaces

在文件的末尾粘贴复制的配置,保存并退出。

重启服务器,验收成果。

配置文件中 xxxx:xxx:xxxx:xxx::x 即为服务器分配到的 IPv6 地址,亦可通过 ip a 命令查看。

Read More

解决 Debian 或 Ubuntu 开机时间被 networking 大量占用的问题

问题

首先查看哪些服务占用了开机时间:

1
systemd-analyze blame

本文示例中发现 networking.service 的时间长达 5 分钟。查看该服务状态可发现如下错误:

1
2
3
4
systemd[1]: networking.service: Start operation timed out. Terminating.
systemd[1]: networking.service: Main process exited, code=killed, status=15/TERM
systemd[1]: networking.service: Failed with result 'timeout'.
systemd[1]: Failed to start Raise network interfaces.

Read More

Debian & Ubuntu 搭建部署 trojan-go + Nginx + WebSocket 并使用 CloudFlare

本文最后更新于 2021 年 1 月 3 日


本文以 Debian 10 为例,介绍如何搭建 trojan-go + WebSocket 服务端,使用 Nginx 建立 Web,并利用 CloudFlare 隐藏源站 IP,最后说明对应的客户端配置文件的格式。本文同样完全适用于 Ubuntu 20.04 系统。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 trojan-go 的部署,并默认已按初始化配置文章对服务器进行了配置。


准备工作

服务器与域名

  1. 可用的公网 IP 服务器(例如在 BandwagonHostVultr 等处购买的 VPS)
  2. 注册一个域名,本文以 example.com 为例

内容准备

  1. 起一个随机的路径名,本文使用 /random
  2. 准备自定义的 Web 页面,用于浏览器正常访问 example.com 显示的网页
  3. 准备自定义的 404 页面(可选)

CloudFlare 设置

  1. 将域名的 Namesever 指向 CloudFlare 所提供的地址,等待生效
  2. NS 记录更新后,将 CloudFlare 中域名的 A 记录指向服务器 IP,确保云朵为橙色(Proxied)
  3. SSL/TLS 版块中的 Overview 里,将加密模式调整为 Full (strict)
  4. SSL/TLS 版块中的 Edge Certificates 里,将 Minimum TLS Version 调整为 TLS 1.3,并在下方确保开启对 TLS 1.3 的支持
  5. Firewall 版块中的 Firewall Rules 里,添加一个规则,允许 /random 路径的访问(Allow URI path)
  6. 在 CloudFlare 上获取域名的 Zone ID,记录之
  7. 在 CloudFlare 的 My Profile 中生成一个 API Token,权限为 Zone Zone ReadZone DNS EditZone Resources 特指区域为 example.com,完成后记下 Token
  8. 根据自己的需要在 CloudFlare 上进行其他设置(可选),例如配置 Always Use HTTPSHSTSAutomatic HTTPS RewritesAuto Minify 等等,主要影响浏览器访问网站的效果

Read More

利用 NAT VPS 进行流量中转

本文最后更新于 2020 年 6 月 3 日


本文以 CentOS 8 和 Debian 10 & Ubuntu 20.04 为例,介绍如何在 NAT VPS 上设置流量中转。

开始前,请先根据实际使用的操作系统,参照以下文章对服务器进行各种必要的配置:

本文以 sammy 用户为例,进行中转机的设置,并默认已按初始化配置文章对服务器进行了配置。

本文将介绍四种方法:firewalldUFWiptables,和 socat(推荐)来进行流量中转,根据需要选取其中一种方法操作即可。亦可根据需要,将目标机设置为只允许中转机访问。

其中,firewalldUFWiptables 均可对 TCP 和 UDP 进行转发,而 socat 还可以对包含域名的地址进行转发。


准备

  • 购买合适的 NAT VPS,此处提供一些服务商
  • 了解 NAT VPS 的基本使用方法,例如搞清楚 NAT VPS 一般需要在服务商处查看端口映射的设置
  • 基础 Linux 操作知识,并了解 vim 编辑器的基本使用方法

使用 firewalld 进行中转

此方法在 CentOS 下较为简便(CentOS 8 默认使用 firewalld),因此也推荐使用此方法。

检查 firewalld 运行状态,输出应为 running

1
firewall-cmd --state

接下来设置端口转发:

1
2
3
4
5
6
sudo firewall-cmd --zone=public --permanent --add-port 本机端口号/tcp
sudo firewall-cmd --zone=public --permanent --add-port 本机端口号/udp
sudo firewall-cmd --zone=public --permanent --add-forward-port=port=本机端口号:proto=tcp:toport=目标端口号:toaddr=目标地址
sudo firewall-cmd --zone=public --permanent --add-forward-port=port=本机端口号:proto=udp:toport=目标端口号:toaddr=目标地址
sudo firewall-cmd --zone=public --permanent --add-masquerade
sudo firewall-cmd --reload

其中 目标地址 为目标服务器的 IP 地址。

至此,利用 firewalld 设置中转的方法介绍完毕。另可根据使用场景,对目标机的防火墙进行配置,令其只接受来自此 NAT VPS 的流量。

Read More