---
layout: single
title:  "OpenWrt"
date:   2023-02-10 08:00:00 +0800
categories: [操作系统, 编程开发]
tags: [路由器, vsftpd, FileZilla, ShadowSocksR, OpenWrt]
---

## DIY自己的软路由系统
### [LEDE](https://github.com/coolsnowwolf/lede)
我买了一个使用 Intel 赛扬处理器的路由器。主要是为了搭梯子，2020年的时候网上编译好的系统不支持 TROJAN 协议，所以我自己使用 LEDE 编译。他的 **SSR Plus+** 组件支持 **SS/SSR/V2RAY/TROJAN** 等协议.

* Images built after May 31 2020 are based on Ubuntu 18.04. 
* ```x86``` This image has **26G**, and the dependent software packages and compiled binaries are in it. It can be used directly for x86, or it can be recompiled through simple configuration.
* ```x86-bin``` This image contains only x86 binaries generated by compilation.

### Compile your own LEDE system.
* Compile:
```bash
docker run -it --name=lede gouchicao/lede:x86
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j$(($(nproc) + 1)) download
make -j$(($(nproc) + 1)) V=s
```

* Reconfiguration:
```bash
rm -rf ./tmp && rm -rf .config
make menuconfig
make -j$(($(nproc) + 1)) V=s
```

* Output path after compilation: **/lede/bin/targets**

### Docker Hub
[我编译的 LEDE](https://hub.docker.com/r/gouchicao/lede)


## SSH 登录 OpenWrt
出现不能访问的错误。
```shell
ssh root@192.168.1.3
```
```
Unable to negotiate with 192.168.1.3 port 22: no matching host key type found. Their offer: ssh-rsa
```

解决方法：
```shell
ssh -oHostKeyAlgorithms=+ssh-rsa root@192.168.1.3                                                
```
```
The authenticity of host '192.168.1.3 (192.168.1.3)' can't be established.
RSA key fingerprint is SHA256:uRfnrNqqCf8TIQ6qvZqFKdAYUthnB3wgiOpvPkHfJHk.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.3' (RSA) to the list of known hosts.
root@192.168.1.3's password: 


BusyBox v1.30.0 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r2561-ef2ebeee
 -----------------------------------------------------
root@OpenWrt:~# 
```

每次都像上面那样输出，太麻烦了。可以在客户端进行配置。
```shell
vim ~/.ssh/config
```
```
Host openwrt
    Hostname 192.168.1.3
    HostKeyAlgorithms +ssh-rsa
    User root
```

方便快捷的登录方法
```shell
ssh openwrt
```

现在还有一点点遗憾，不能免密登录。OpenWrt 的 SSH 服务端使用的是 Dropbear，通过后台管理配置了 ssh-key 密钥，服务器上可以看到文件：/etc/dropbear/authorized_keys。
**没有免密成功**


## FTP 客户端 [FileZilla](https://filezilla-project.org/index.php)
OpenWrt 上的 FTP 服务器是 vsftpd。
* 配置路径：/etc/config/vsftpd
* 服务路径：/etc/init.d/vsftpd

### 解决在客户端不能删除服务器上的目录
* 连接后删除服务器上目录出现错误信息：“550 Remove directory operation failed.”
* 登录 OpenWrt 的后台管理，通过菜单【网络存储】-【FTP 服务器】，在全局设置中选择“显示以点开头的文件 (隐藏文件)”。
* 单击【保存&应用】。

[Enable display of hidden dot files in VSFTPD](https://www.shkodenko.com/enable-display-of-hidden-dot-files-in-vsftpd/)


## 科学上网
进入系统，选择 `服务` 菜单中的 `ShadowSocksR Plus+` 选项。

ShadowSocksR Plus+ 设置支持SS/SSR/V2RAY/TROJAN/SOCKS5/TUN

### 运行模式
配置运行模式，选择 `绕过中国大陆IP模式`。

#### GFW列表模式
GFW列表模式指的是通过使用一种称为“随机混淆”的技术来绕过中国大陆的网络审查（也称为“防火长城”）。在GFW模式下，ShadowSocksR会自动选择一种随机混淆方式，比如“HTTP混淆”、“TLS混淆”、“混淆UDP”等，从而让网络流量看起来更像是正常的网络流量，从而避免被网络审查识别和封锁。

#### 绕过中国大陆IP模式
绕过中国大陆IP模式是指只有访问非中国大陆IP地址的流量才会通过ShadowSocksR代理。这种模式通常用于在国外使用ShadowSocksR代理访问中国大陆网站时，避免将中国大陆网站的流量也经过ShadowSocksR代理，从而提高访问速度和稳定性。在绕过中国大陆IP模式下，ShadowSocksR会根据目标IP地址的所属地区来判断是否需要通过代理访问，如果目标IP地址属于中国大陆地区，那么流量将直接连接而不经过代理。

#### Pac模式
Pac模式指的是ShadowSocksR的一种运行模式，它使用了一个称为“PAC（Proxy Auto-Config）”文件的配置文件来自动决定哪些网络流量需要通过ShadowSocksR代理，哪些不需要。PAC文件包含了一段JavaScript代码，用来根据访问的网址、IP地址、端口等信息来判断应该使用哪种代理方式（比如直接连接、使用代理、使用HTTPS代理等）。PAC模式通常用于需要在不同网络环境下自动切换代理的情况，比如在公司或学校等需要使用内部网络的地方使用代理，在家里或外出时则不需要使用代理。

#### 全局模式
全局模式可以将所有的网络流量都通过ShadowSocksR代理服务器进行转发，无论是访问国内还是国外的网站。在全局模式下，ShadowSocksR会将所有的网络流量都通过代理服务器进行转发，从而实现所有网络流量的加密和隐藏。这种模式通常用于需要保护所有网络流量隐私的情况，比如在公共Wi-Fi网络、不受信任的网络或者需要避免被网络监控的情况下使用。需要注意的是，由于所有网络流量都经过了代理服务器，因此可能会影响网络速度和稳定性，同时也会增加网络延迟。

#### 海外用户回国模式
海外用户回国模式指的是ShadowSocksR的一种运行模式，它主要是为海外用户回国访问中国大陆网站而设计的。在这种模式下，ShadowSocksR会将所有流量都通过代理服务器转发到中国大陆的服务器，然后再由中国大陆的服务器连接目标网站，从而实现海外用户访问中国大陆网站的目的。这种模式可以有效地绕过中国大陆的网络封锁和审查，同时也可以提高访问速度和稳定性。需要注意的是，由于所有流量都经过了代理服务器和中国大陆的服务器，因此可能会影响网络速度和稳定性，同时也可能会增加网络延迟。
