<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nevan's blogs</title><link>https://nevan-blogs.v6.rocks/</link><description>Recent content on Nevan's blogs</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 22 Aug 2026 20:49:54 +0800</lastBuildDate><atom:link href="https://nevan-blogs.v6.rocks/index.xml" rel="self" type="application/rss+xml"/><item><title>arpl proxy</title><link>https://nevan-blogs.v6.rocks/posts/arpl/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/arpl/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt;sed -i &amp;#39;s|https://github.com|https://gh-proxy.com/https://github.com|g&amp;#39; /opt/arpl/menu.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;标签：&lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/arpl/"&gt;arpl&lt;/a&gt;, &lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/%E9%BB%91%E7%BE%A4%E6%99%96/"&gt;黑群晖&lt;/a&gt;, &lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/github/"&gt;github&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Dummy Interface</title><link>https://nevan-blogs.v6.rocks/posts/linux-dummy-interface/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/linux-dummy-interface/</guid><description>&lt;p&gt;Dummy Interface 是 Linux 内核提供的一种虚拟网络接口， &lt;strong&gt;不依赖物理硬件&lt;/strong&gt; ，仅存在于内核网络栈中。它的主要作用包括：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;网络测试&lt;/strong&gt; ：在没有物理网卡的环境（如虚拟机、容器）中模拟网络环境。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;服务绑定&lt;/strong&gt; ：将服务绑定到虚拟接口的 IP 地址，避免依赖物理网卡。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;多 IP 模拟&lt;/strong&gt; ：在单台机器上模拟多网卡/多 IP 场景，测试负载均衡、高可用等配置。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;流量转发&lt;/strong&gt; ：作为流量中转接口（需配合路由规则）。&lt;/p&gt;&#10;&lt;p&gt;Dummy Interface 的工作原理与物理接口类似，但不会发送或接收真实网络数据包，仅在系统内部处理网络流量。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="2-前置条件"&gt;2. 前置条件&lt;/h2&gt;&#10;&lt;p&gt;在操作前，请确保满足以下条件：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;Linux 系统&lt;/strong&gt; ：本文基于 Ubuntu 22.04 和 CentOS 8 测试，其他发行版（如 Debian、Fedora）操作类似。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;root 权限&lt;/strong&gt; ：创建/配置网络接口需管理员权限（使用 &lt;code&gt;sudo&lt;/code&gt; 或直接切换至 root）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;iproute2 工具&lt;/strong&gt; ：现代 Linux 系统默认预装，用于管理网络接口（替代老旧的 &lt;code&gt;ifconfig&lt;/code&gt; ）。若未安装，可通过包管理器安装：&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# Ubuntu/Debian&#10;sudo apt install iproute2&#10;&#10;# CentOS/RHEL&#10;sudo yum install iproute2&#10;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;内核模块&lt;/strong&gt; ：Dummy Interface 依赖内核模块 &lt;code&gt;dummy&lt;/code&gt; ，通常默认加载。可通过以下命令检查：&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;lsmod | grep dummy&#10;# 输出示例：dummy 16384 0&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;若未加载，手动加载： &lt;code&gt;sudo modprobe dummy&lt;/code&gt; 。&lt;/p&gt;</description></item><item><title>ffmpeg user manual</title><link>https://nevan-blogs.v6.rocks/posts/ffmpeg/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/ffmpeg/</guid><description>&lt;h6 id="转码"&gt;转码:&lt;/h6&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ffmpeg -threads 2 -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input.mp4 -c:v h264_vaapi -b:v 4M -c:a copy -preset fast -crf 18 output.mp4&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h6 id="压缩分辨率"&gt;压缩分辨率:&lt;/h6&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ffmpeg -threads 2 -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input_uhd.mp4 -vf &amp;#39;deinterlace_vaapi=rate=field:auto=1,scale_vaapi=w=1920:h=1080&amp;#39; -c:v hevc_vaapi -b:v 8M -c:a copy -preset fast -crf 18 output_hd.mp4 -hide_banner&#10;&#10;ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input.avi -filter:v scale=1920:-1 -c:a copy output.mkv -hide_banner&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h6 id="剪切"&gt;剪切:&lt;/h6&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ffmpeg -ss 00:00:20 -to 00:00:30 -i in.mp4 -c copy out.mp4&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h6 id="合并bilibili缓存音视频"&gt;合并bilibili缓存音视频:&lt;/h6&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ffmpeg -i audio.m4s -i video.m4s -codec copy ../output.mp4&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;脚本 : ffmpeg-copy.sh :&lt;/p&gt;</description></item><item><title>geodata for v2rayng</title><link>https://nevan-blogs.v6.rocks/posts/geodate/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/geodate/</guid><description>&lt;p&gt;&lt;a href="https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat"&gt;https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat"&gt;https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;标签：&lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/v2rayng/"&gt;v2rayng&lt;/a&gt;, &lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/geodate/"&gt;geodate&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hello World !</title><link>https://nevan-blogs.v6.rocks/posts/helloworld/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/helloworld/</guid><description>&lt;p&gt;Hello World !&lt;/p&gt;</description></item><item><title>Install Waydroid</title><link>https://nevan-blogs.v6.rocks/posts/waydroid/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/waydroid/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;xanmod kernel&#10;kernel parameter:psi=1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="firewall"&gt;firewall:&lt;/h4&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo ufw allow 67&#10;sudo ufw allow 53&#10;sudo ufw default allow FORWARD&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="install"&gt;Install&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install curl ca-certificates -y&#10;proxychains4 curl https://repo.waydro.id | sudo bash&#10;sudo apt install waydroid&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="init"&gt;Init&lt;/h2&gt;&#10;&lt;p&gt;images url:&lt;a href="https://sourceforge.net/projects/waydroid/files/images/"&gt;https://sourceforge.net/projects/waydroid/files/images/&lt;/a&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo waydroid init -f -i /usr/share/waydroid-extra/images&#10;sudo chmod -R o+r /var/lib/waydroid&#10;sudo chmod -R o+x /var/lib/waydroid&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="start"&gt;Start&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo waydroid container start&#10;waydroid session start&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="launch"&gt;Launch&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;waydroid show-full-ui&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="arm-translation"&gt;ARM translation&lt;/h2&gt;&#10;&lt;p&gt;url:&lt;a href="https://github.com/casualsnek/waydroid_script"&gt;https://github.com/casualsnek/waydroid_script&lt;/a&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;apt install python3-pip python3.11-venv lzip&#10;&#10;git clone https://github.com/casualsnek/waydroid_script&#10;cd waydroid_script&#10;python3 -m venv venv&#10;venv/bin/pip install -r requirements.txt&#10;sudo venv/bin/python3 main.py&#10;&#10;sudo proxychains4 venv/bin/python3 main.py install libhoudini&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="reinit"&gt;Reinit&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;waydroid session stop&#10;sudo waydroid container stop&#10;sudo rm -rf /var/lib/waydroid /home/.waydroid ~/waydroid ~/.share/waydroid ~/.local/share/applications/\*aydroid\* ~/.local/share/waydroid&#10;sudo waydroid init -f -i /usr/share/waydroid-extra/images&#10;waydroid show-full-ui&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="apps"&gt;apps&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;waydroid app install com.app.apk&#10;waydroid app launch com.app&#10;PS：应用列表&#10;waydroid app list&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="root-shell"&gt;root shell&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo waydroid shell&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="etc"&gt;Etc.:&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;waydroid prop set persist.waydroid.width 0-9999 (int)&lt;/code&gt; # Used for user to override desired resolution,leave empty to reset.&lt;/p&gt;</description></item><item><title>Markdown Syntax Guide</title><link>https://nevan-blogs.v6.rocks/posts/markdown-syntax-guide/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/markdown-syntax-guide/</guid><description>&lt;p&gt;This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.&lt;/p&gt;&#10;&lt;h2 id="headings"&gt;Headings&lt;/h2&gt;&#10;&lt;p&gt;The following HTML &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;—&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; elements represent six levels of section headings. &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; is the highest section level while &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; is the lowest.&lt;/p&gt;&#10;&lt;h2 id="h1"&gt;H1&lt;/h2&gt;&#10;&lt;h2 id="h2"&gt;H2&lt;/h2&gt;&#10;&lt;h3 id="h3"&gt;H3&lt;/h3&gt;&#10;&lt;h4 id="h4"&gt;H4&lt;/h4&gt;&#10;&lt;h5 id="h5"&gt;H5&lt;/h5&gt;&#10;&lt;h6 id="h6"&gt;H6&lt;/h6&gt;&#10;&lt;h2 id="paragraph"&gt;Paragraph&lt;/h2&gt;&#10;&lt;p&gt;Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.&lt;/p&gt;</description></item><item><title>Math Typesetting</title><link>https://nevan-blogs.v6.rocks/posts/math-typesetting/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/math-typesetting/</guid><description>&lt;p&gt;Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.&lt;/p&gt;&#10;&lt;p&gt;In this example we will be using &lt;a href="https://katex.org/"&gt;KaTeX&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Create a partial under &lt;code&gt;/layouts/partials/math.html&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;Within this partial reference the &lt;a href="https://katex.org/docs/autorender.html"&gt;Auto-render Extension&lt;/a&gt; or host these scripts locally.&lt;/li&gt;&#10;&lt;li&gt;Include the partial in your templates like so:&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;{{ if or .Params.math .Site.Params.math }}&#10;{{ partial &amp;#34;math.html&amp;#34; . }}&#10;{{ end }}&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;To enable KaTex globally set the parameter &lt;code&gt;math&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; in a project&amp;rsquo;s configuration&lt;/li&gt;&#10;&lt;li&gt;To enable KaTex on a per page basis include the parameter &lt;code&gt;math: true&lt;/code&gt; in content files&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Use the online reference of &lt;a href="https://katex.org/docs/supported.html"&gt;Supported TeX Functions&lt;/a&gt;&lt;/p&gt;</description></item><item><title>postgresql psql usage</title><link>https://nevan-blogs.v6.rocks/posts/postgresql/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/postgresql/</guid><description>&lt;h2 id="login"&gt;Login&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker exec -it postgres psql -h 127.0.0.1 -p 5432 -U nevan -d nevan&#10;PGPASSWORD=&amp;#34;admin&amp;#34; psql -h 127.0.0.1 -p 5432 -U nevan -d nevan&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="create-db"&gt;Create DB&lt;/h2&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo -u postgres psql&#10;&#10;CREATE USER nevan WITH PASSWORD &amp;#39;admin&amp;#39; CREATEDB;&#10;CREATE DATABASE nevan TEMPLATE template0 ENCODING &amp;#39;UTF8&amp;#39;;&#10;ALTER DATABASE nevan OWNER TO nevan;&#10;GRANT ALL PRIVILEGES ON DATABASE nevan TO nevan;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="backup"&gt;Backup&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;pg_dump.sh&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/bash&#10;#pg_dump -c -C --dbname=postgresql://nevan:nevan@127.0.0.1:5432/nevan &amp;gt; /root/DB/nevan_$(date +%F-%R).sql&#10;#pg_dump -c -C --dbname=postgresql://nevan:nevan@127.0.0.1:5432/nevan &amp;gt; /root/DB/nevan.sql&#10;#PGPASSWORD=&amp;#34;admin&amp;#34; pg_dump -c -C -d nevan -h 127.0.0.1 -p 5432 -U nevan -F t -f /root/DB/nevan.tar&#10;&#10;docker exec postgres pg_dump -c -C -d nevan -h 127.0.0.1 -p 5432 -U nevan -F t -f /backup/nevan.tar&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;pg_restore.sh&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Tips of Nginx</title><link>https://nevan-blogs.v6.rocks/posts/tips-of-nginx/</link><pubDate>Sat, 22 Aug 2026 20:49:54 +0800</pubDate><guid>https://nevan-blogs.v6.rocks/posts/tips-of-nginx/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;No.1&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&#10;使用nginx proxy代理https和http3访问时，HTTP/3 (QUIC) 请求被 Nginx 拒绝，返回 400 错误(missing required Host header)，而 HTTP/2 请求却能正常工作（返回 200），需要更改所有&amp;rsquo;proxy_set_header Host $http_host;&amp;lsquo;为&amp;rsquo;proxy_set_header Host $host;&amp;rsquo;。&lt;br&gt;&#10;proxy_set_header Host $host; 相比 $http_host 更加健壮，因为它会优先使用客户端请求的 Host 头，如果为空则 fallback 到 $server_name。这在处理 HTTP/3 或某些特殊客户端请求时能有效避免 Host 头缺失的问题。&lt;/p&gt;&#10;&lt;p&gt;标签：&lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/Nginx/"&gt;Nginx&lt;/a&gt;, &lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/http3/"&gt;http3&lt;/a&gt;, &lt;a href="https://nevan-blogs.v6.rocks/index.php/tag/quic/"&gt;quic&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>