前言
在上一篇文章中(参见:OpenWrt软路由系列 PVE部署OpenWrt(23.05.2)详细教程),我在pve上部署好了openwrt,这一篇就是在openwrt上安装我认为必要的3个软件:openclash、sftpserver、tailscale。
openclash肯定是最重要的,它是通向科学殿堂的钥匙;sftpserver让我能通过sftp客户端方便的往openwrt上传送文件;最后tailscale可以让我其他同样部署了tailscale的设备在任何地点都可以访问到openwrt并以它作为数据的出口,配合clash的白名单功能,能够让设备随时随地得到科学或者魔法的加持。
软件安装
安装openclash
iptables
opkg update
opkg install coreutils-nohup bash iptables dnsmasq-full curl ca-certificates ipset ip-full iptables-mod-tproxy iptables-mod-extra libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base
nftables
opkg install coreutils-nohup bash dnsmasq-full curl ca-certificates ipset ip-full libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base
下载最新的openclash ipk安装包,目前的最新版本为v0.46.003-beta,下载链接如下:
0.46.003-beta下载链接
在"系统"-"软件包"界面下,将下载的ipk文件下上传到openclash(养成先更新列表的好习惯):
出现报错:
看到基本都是由于dnsmasq引起的,所以先删掉dsnmasq:
opkg remove *dnsmasq
显示如下:
然后重新上传ipk包进行安装,这次安装成功:
重启openwrt之后,在服务菜单下就多了一个openclash:
点击进入后就能看到我们熟悉的界面:
具体的设置过程我就不写了,这个网上教程非常多,当然需要先有通往科学或者魔法殿堂的钥匙才行。
另:其实openwrt上还有另外2款出名的科学插件:SSRPlus、PassWall,更加简单易用,不过我用惯了clash(梅林用的也是MerlinClash),所以就不折腾直接openclash了。但是clash的作者已经删库了,后续的更新也不知道会如何,到时候在说吧。。
安装openssh-sftp-server
openwrt自带的ssh服务器是dropbear,虽然其更加轻量化,但是却不支持sftp(支持scp),这导致我们很多ssh客户端都自带了的sftp client无法发挥作用,所以我们需要安装一个sftpserver。
在"系统"-"软件包"界面下,在过滤器搜索"openssh-sftp-server",然后直接进行安装即可(养成先更新列表的好习惯):
当然,也可以在cli界面进行安装:
opkg update
opkg install openssh-sftp-server
然后即可使用很多SSH客户端整合的sftp客户端进行文件传输了,比如Termius自带的sftp客户端:
安装tailscale
在"系统"-"软件包"界面下,在过滤器搜索"tailscale",然后直接进行安装即可(养成先更新列表的好习惯):
当然,也可以在cli界面进行安装:
opkg update
opkg install tailscale
然后在cli下启动tailscale:
tailscale up
直接使用上面的链接登录tailscale进行验证即可。
另:如果要使用该openwrt作为exit-node,需要先进行宣告:
tailscale up --advertise-exit-node
然后在tailscale官网的machines里将openwrt对应的出口点选项打开:
有点遗憾的是,软件包上的版本稍微老了点,如果要安装最新的也可以,比如,目前我安装的时候,软件包里tailscale的版本是1.58.2-1:
而github上的版本是1.60.0(自动更新):
下载链接如下:https://github.com/adyanth/openwrt-tailscale-enabler/releases。
所以可以直接从github上下载最新版tailscale的.tgz包,通过sftp传到openwrt上,然后运行如下命令:
tar x -zvC / -f openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz
运行结果如下:
安装依赖包:
opkg update
opkg install libustream-openssl ca-bundle kmod-tun
设置开机启动:
/etc/init.d/tailscale enable #设置开机自动启动
/etc/init.d/tailscale start #启动tailscale
然后同样运行命令:
tailscale up
除了依然会出现认证链接以为,你还会发现自动升级到了最新版1.62.0:
我忍受梅林上tailscale的1.42版本已经很久了,这下以后终于不用愁tailscale的更新了。
安装tcpdump(可选)
在cli界面下,tcpdump是非常好的抓包工具:既可以实时看到抓包的结果,也可以将完整的抓包结果保存为pcap文件,然后在桌面系统里用wireshark或者sniffer之类的软件直接打开进行分析,对于经常折腾和排错的人是非常有用的(以前配F5的时候排错必备,比如客户冤枉我加了F5之后应用不通,然后直接用tcpdump一抓包,然后发现包都没过来。。。再然后就可以正大光明的屌用户了~~~~)。
在"系统"-"软件包"界面下,在过滤器搜索"tcpdump",然后直接进行安装即可(养成先更新列表的好习惯):
当然,也可以在cli界面进行安装:
opkg update
opkg tcpdump
举例说明,我想抓取eth0接口上源地址是192.168.10.84发往1080端口(socks5)的包,则tcpdump的命令格式如下:
tcpdump -i eth0 src host 192.168.10.84 and dst port 1080
具体输出如下:
如果想要保存为pcap文件,则添加
-w xxxx.pcap
参数即可,非常的方便。
后话
openwrt上还可以安装很多有用的软件,比如lucky、transmission、smartdns、ADguard home等等,有些可以直接在软件包管理器里安装,也有些要自己去下载ipk包然后上传到openwrt里进行安装,还有的需要自己编译,这些就要看大家个人的需求了。
不过讲道理,路由器工作以稳定为主,如果不是真的很需要的软件还是少装,一些功能,如果可以在路由器外用docker来实现,就不一定非要安装到openwrt上,毕竟让专业的设备干专业的事是大原则,同时这样可以降低对安装openwrt设备的硬件要求。