menu Chancel's Blog
rss_feed lightbulb_outline

我的笔记

KCPTUN - 配置文件指南

服务端配置

{
  "listen": "0.0.0.0:8082",
  "target":"127.0.0.1:8081",                        
  "key": "key",
  "crypt": "aes-256-cfb",
  "mtu": 1350,
  "sndwnd": 1024,
  "rcvwnd": 1024,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 0,
  "conn": 1,
  "autoexpire": 60,
  "nocomp": false
}

客户端配置

{
 "mtu": 1400,
 "key": "key",
 "nocomp": false,
 "remoteaddr": "www.example.com:8082",
 "datashard": 10,
 "autoexpire": 60,
 "acknodelay": false,
 "sndwnd": 1024,
 "nc": 0,
 "rcvwnd": 1024,
 "crypt": "aes-256-cfb",
 "dscp": 0,
 "conn": 1,
 "localaddr": "0.0.0.0:11226",
 "nodelay": 0,
 "parityshard": 3
}

Network 2021-02-04 11:57:41

FRP - 配置文件最简指南

FRP客户端配置文件(版本33)

[common]
token=12345678
server_addr = www.example.com
server_port = 12000
admin_addr = 0.0.0.0
admin_port = 7400
admin_user = chancel
admin_pwd = chancel

[Ubuntu1804-SSH]
type = tcp
local_ip = 176.16.0.10
local_port = 22
remote_port = 20022

FRP服务端配置(版本33)

[common]
bind_addr = 0.0.0.0
bind_port = 12000
kcp_bind_port = 12000

# Web
dashboard_port = 5005
dashboard_user = chancel
dashboard_pwd = chancel

# token
token = 12345678

Network 2021-02-04 11:56:07

SSH - 反向代理(SSH隧道)方法

假设有2台主机A和B,目标是实现A机器的8080端口转发到B机器的9090端口

首先编辑A主机的 /etc/ssh/sshd_config,将GatewayPorts注释(#符号)去掉,值修改为yes

sudo vim /etc/ssh/sshd_config

...
#GatewayPorts no
...

重启A主机的ssh服务并启动转发

sudo systemctl restart sshd
sudo ssh -NfR 8080:9090 [B机器用户名]@[B机器IP]

按上述操作后,则在任何外网机器访问A主机的8080端口,最终都会被转发到B主机的80端口上

此外可以参考针对SSH转发优化的 SSH TUNNELLING FOR FUN AND PROFIT: AUTOSSH

Network Linux 2021-01-18 14:23:13

Openwrt - 旁路由DHCP服务下实现外网的端口映射

局域网内,如果网络模型为旁路由做DHCP服务,那么主路由添加端口映射后,外网请求内网端口映射的机器,会发现请求是成功的,但没有返回

原因是内网的设备网关地址并不是主路由而是旁路由,解决方案有很多,这里提供一个较为简便的方案(PS:不考虑网络性能损耗),直接使用旁路由转发

将主路由的端口映射到旁路由,举例

  • 主路由IP:10.0.0.1
  • 旁路由IP:10.0.0.2
  • 设备A的IP:10.0.0.78
  • 等待转发的转口:10.0.0.1:8008->10.0.0.78:8008

首先在主路由添加端口映射,将8008映射到旁路由的8008,然后在旁路由中添加一条流量转发规则即可

iptables -t nat -A PREROUTING -p tcp --dport 8009 -j DNAT --to-destination 10.0.0.78

Network 2020-10-29 10:03:11

Firewalld - 端口转发且只允许指定IP访问该端口

给服务器做备份时候遇到一个比较复杂的Firewalld防火墙转发问题,先描述一下问题背景

A机器是准备用来备份数据库的机器,网卡IP假设是

  • 224.24.24.24

B机器是应用服务器,有两张网卡它们IP假设分别是

  • 223.23.23.23(外网)
  • 192.168.1.20(内网)

C机器是数据库服务器,只有有一张网卡且IP假设是

  • 192.168.1.24

数据库位于C机器且只监听 192.168.1.24这张网卡,应用部署于A服务器,直接通过内网网卡与B机器数据库交互

现在希望用A服务器来备份C服务器的数据库,那么思路是分为2步

  1. B机器某个端口进行转发,转发到C机器上的数据库端口
  2. B机器允许A机器的访问第1步里设置的转发端口,且也只允许来源为A机器的IP进行访问

按照这个思路动手,首先是Firewalld要转发端口要用到的IP伪装功能,查询IP伪装开启状态

sudo firewall-cmd --query-masquerade # 输出如果是NO说明没开启

firewall-cmd --add-masquerade --permanent # 开启IP伪装

然后将端口进行转发,假设C服务器的数据库端口是3306,我们要把B机器的33306转发到C机器的3306

在B机器上执行2个步骤如下

# 1. 将A机器访问的端口进行转发,转发到C机器上
sudo firewall-cmd --add-forward-port=port=33306:proto=tcp:toaddr=192.168.1.24:toport=3306 --permanent
# 2. 允许A机器的访问自己的转发端口且只允许来源为A机器的IP
sudo firewall-cmd --add-rich-rule="rule family="ipv4" source address="224.24.24.24" port protocol="tcp" port="33306" accept" --permanent

# 重新载入配置
sudo firewall-cmd --reload 

思路觉得是没问题的,执行之后使用 sudo firewall-cmd --list-all 可以查看规则效果

但测试之后发现即使来源IP不是A机器也能访问B机器的33306端口,显然第2步的设置无效

对于防火墙的原理了解不多,猜测是直接开启端口流量转发之后是RICH规则不再对端口进行限制了

那么思路应该还是没问题的,在设置上考虑了下,也许转发可以直接在 rich rules写明才有效?于是取消掉了前面设置的端口转发

# 1. 取消 允许A机器的访问自己的某个端口且只允许来源为A机器的IP
sudo firewall-cmd --remove-rich-rule="rule family="ipv4" source address="224.24.24.24" port protocol="tcp" port="33306" accept" --permanent
# 2. 取消 将A机器访问的端口进行转发,转发到C机器上
sudo firewall-cmd --remove-forward-port=port=33306:proto=tcp:toaddr=192.168.1.24:toport=3306 --permanent

那么尝试改成

sudo firewall-cmd --add-rich-rule = "rule family="ipv4" source address="224.24.24.24" forward-port port="33306" protocol="tcp" to-port="3306" to-addr="192.168.1.24""

再测试下,发现现在只有IP为 224.24.24.24才能访问 B机器的33306端口,其他机器访问会直接显示faild

Network 2020-04-03 16:03:33

单臂路由 - 访问国内网站不正常

最近一段时间使用Hyper-v虚拟的Openwrt单臂路由总是访问国内网站速度慢到不正常,即便改了DNS配置也是一样的表现

相反另外一台的双网口Openwrt就没有这种表现,于是上网查找了一番,发现有一个方法是可靠的,在Openwrt中的Lan防火墙自定义规则中加入

iptables -t nat -I POSTROUTING -j MASQUERADE

暂时不明白这句话的作用,但实际是有效果的,留个坑日后来填!

Network 2020-03-22 02:13:57

Windows - 快速定位占用端口程序

使用netstat -aon|findstr 即可可以查询到占用端口程序的PID

使用tasklist|findstr 即可看到占用程序的相关信息

PS C:\Users\ycs10> netstat -aon|findstr "3389"
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1380
  TCP    192.168.11.193:9434    192.168.11.155:3389    ESTABLISHED     4088
  TCP    192.168.11.193:11526   192.168.11.214:3389    ESTABLISHED     4088
  TCP    [::]:3389              [::]:0                 LISTENING       1380
  UDP    0.0.0.0:3389           *:*                                    1380
  UDP    [::]:3389              *:*                                    1380
PS C:\Users\ycs10> tasklist|findstr "1380"
svchost.exe                   1380 Services                   0     15,464 K
chrome.exe                   13808 Console                    1     13,440

Network Windows 2019-10-12 14:14:25

Windows - 路由追踪

指令:tracert

通过路由追踪可以清晰的得到我们的网络请求中断位置,是常用于判断网络异常/服务器异常问题的利器

PS C:\WINDOWS\system32> tracert 45.12.109.68

通过最多 30 个跃点跟踪到 45.12.109.68 的路由

  1     1 ms     1 ms     2 ms  192.168.11.1
  2    28 ms    11 ms    12 ms  1.72.137.219.broad.gz.gd.dynamic.163data.com.cn [219.137.72.1]
  3    18 ms    13 ms    18 ms  119.145.81.157
  4    17 ms     9 ms     9 ms  61.144.3.30
  5     *        9 ms    13 ms  202.97.94.142
  6    20 ms    10 ms    16 ms  202.97.94.102
  7   204 ms   206 ms   206 ms  202.97.89.138
  8   203 ms   228 ms   204 ms  ae3.paloalto2.pao.seabone.net [195.22.206.169]
  9   189 ms   186 ms   189 ms  ae14.losangeles2.loa.seabone.net [89.221.35.144]
 10   184 ms   188 ms   179 ms  profuse.losangeles2.loa.seabone.net [89.221.35.147]
 11     *        *        *     请求超时。
 12     *        *     1775 ms  104.149.2.158
 13   179 ms   178 ms     *     185.232.15.196
 14     *        *        *     请求超时。
 15     *        *        *     请求超时。
 16     *        *        *     请求超时。
 17     *        *        *     请求超时。
 18     *        *        *     请求超时。
 19     *        *        *     请求超时。
 20     *        *        *     请求超时。
 21     *        *        *     请求超时。
 22     *        *        *     请求超时。
 23     *        *        *     请求超时。
 24     *        *        *     请求超时。
 25     *        *        *     请求超时。
 26     *        *        *     请求超时。
 27     *        *        *     请求超时。
 28     *        *        *     请求超时。
 29     *        *        *     请求超时。
 30     *        *        *     请求超时。

跟踪完成。

Network Windows 2019-10-12 14:14:34

Windows的全局代理设置异常?

在折腾Python爬虫代码的时候发现一直跑之前一个代理端口(已废弃),看了看了IE跟注册表都没有问题,检查了许久才发现是环境变量里设置了代理

  • IE设置
  • 注册表设置
  • 环境变量http_proxy

Network Windows 2019-08-06 15:50:06

Windows Server 开启ftp后外网无法访问?

需要在防火墙授权以下端口

  • 20
  • 21
  • 1433

并允许下列程序例外(重点)

  • C:\windows\system32\svchost.exe

Network Windows 2019-08-06 15:47:24

1 of 1 | A total of 10