wireguard 协议是一种开源的 vpn 协议,较传统的 openvpn 等协议能提供更好的传输性能(大概3倍),同时配置更加简洁,安全性也不弱于 openvpn 协议。这里是在学习过程中对 wireguard whitepaper 的翻译,以及一些自己的总结的内容。
...
2个月前 (01-17) 378℃ 0评论
2喜欢
在服务端测试时,如果对业务可靠性要求较高,需要测试服务在不同时延,丢包,抖动下的表现,这时可以使用 linux 流控工具 TC(traffic control) 模拟弱网情况。
tc工具是做什么的
主要有两大部分功能:
1. 模拟网络延迟,丢包,包重复,包损...
5个月前 (10-09) 909℃ 0评论
1喜欢
如果服务器有一个大文件,客户端去下载这个大文件,需要限制下载的最大速率,该如何做呢?
sudo tc qdisc add dev eth0 root tbf rate 80mbit latency 10ms burst 160mbit
这个命令对服务器端的网卡 et...
10个月前 (05-27) 1276℃ 0评论
2喜欢
有些公司为了企业内网安全,默认是不准连接公网的,如果连接公网,会搭建专用的出口网关,所有进入公网的流量都先通过出口网关,再进入公网。可以采用的一种方式是在内网和公网机器之间搭建一条 VPN 隧道,实现内外网的打平。
当内网和外网建立一条 VPN 隧道后,相当于把内网在公网上开了一...
1年前 (2021-12-02) 2133℃ 0评论
1喜欢
docker 文件系统
OverlayFS是一种堆叠文件系统,将原来底层文件系统中不同的目录进行“合并”,然后向用户呈现,如下图所示:
A) lower dirA / lower dirB目录和upper dir目录为来自底层文件系统的不同目录,内部包含了想要合并的文件和目录
...
1年前 (2021-11-21) 2365℃ 0评论
2喜欢
经常遇到这样的面试题:比较
for (i = 0; i < A; i++)
{
for (j = 0; j < B; j++)
{
/////
}
}
和
for (i = 0; i < B; i++)
{
...
2年前 (2021-05-31) 3735℃ 0评论
3喜欢
1. 基础类型的局部变量的初始化:
var a int = 1
var b = 2.0
c := 'a'
fmt.Printf("%T %T %T\n", a, b, c) //int float64 int32
var a int := 1 //wrong
var b :=...
3年前 (2020-09-09) 3964℃ 0评论
257喜欢
当给多个变量同时赋值时:
i, data := 0, []int{1,2,3}
i, data[i]= 2, 100
执行后:
i=2,data[0]=100
未使用的变量会引发编译错误,但是未使用的常量可以正常编译执行
func main() {
const ...
3年前 (2020-03-02) 3237℃
1喜欢
go 语言里面没有逻辑左移和逻辑右移,比如想获取一个 int32 类型的数字a的符号位:
sign = a >>> 31
这种写法在java一些语言里面是没有问题的,如果a是正数,sign结果为0,反之负数为1。但是golang里只有算术左移和算术右移:...
4年前 (2019-06-14) 6116℃ 0评论
8喜欢
之前练习了一个数字转英文表述,这次写一个转中文大写的,代码已经通过OJ的测试 ,范围从 [0,999999999999]
package main
import (
"fmt"
)
var nums []rune = []rune{'零', '壹', '贰', '叁'...
4年前 (2018-12-12) 5817℃ 0评论
2喜欢