Debian 上搭建 frp 实现内网穿透

本文最后更新于 2020 年 9 月 28 日


本文以 Debian 10 为例,介绍如何搭建 frp 服务端,用以实现内网穿透,并以 VNC 的使用为例,介绍如何配置客户端。本文同样完全适用于 Ubuntu 20.04 系统。

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


服务端安装

GitHub 上找到对应架构的最新压缩包并下载,例如:

1
2
3
4
5
6
export VERSION_FRP="0.34.0"
cd /usr/local/bin
sudo wget https://github.com/fatedier/frp/releases/download/v"$VERSION_FRP"/frp_"$VERSION_FRP"_linux_amd64.tar.gz
sudo tar -xf frp_"$VERSION_FRP"_linux_amd64.tar.gz -C /usr/local/bin
sudo mv frp_"$VERSION_FRP"_linux_amd64 frp
sudo rm frp_"$VERSION_FRP"_linux_amd64.tar.gz

Read More

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