-
Notifications
You must be signed in to change notification settings - Fork 9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
依據 FHS 修改 V2Ray 的安裝路徑 #2328
Comments
參考項目已基本可用。 |
考慮到目前絕大多數的 Linux 發行版已經切換到 systemd,參考項目中已移除對 System V 的支援。 一些特殊的 Linux 發行版及作業系統,如 Arch Linux、Gentoo 和 FreeBSD,都有著自己的解決方案,可直接通過其官方軟體倉庫安裝 V2Ray。 |
參考項目中,啟動服務文件的內容確定為:
對於日誌權限問題的解決方案是: # Used to store V2Ray log files
if [[ ! -d '/var/log/v2ray/' ]]; then
if [[ -n "$(id nobody | grep nogroup)" ]]; then
install -d -o nobody -g nogroup /var/log/v2ray/
else
install -do nobody /var/log/v2ray/
fi
fi |
如果分目录的话目前测试可以兼容运行吗 |
若啟動服務文件已存在,該腳本不會對其進行修改。 在完全使用新的啟動服務文件的情況下: 對於 v4.23.0 及以上版本, 對於 v4.23.0 以下版本,僅可使用 上述情況已完成測試。 |
其实可以参照 Arch 打包 v2ray 的方法 至于 systemd 的 service 文件我会处理的 |
感謝提供建議 :) 這個方法很不錯,我這就去進行修正。 |
大概明天或者后天,我会修 service 文件,根据这个 issue,脚本安装时或许需要配置迁移或者 sed -i 's/orig/new/' 替换一些配置 |
|
配置的遷移交給使用者手動進行會不會更好一些呢? |
或许可以作为可选并默认不启用选项,让用户自己选择 |
推荐把 |
鉴于部分用户还在用类似 centos6 的老古董,直接去掉可能不是一个好的选择 |
我這裡修改為如下內容進行測試:
但低位端口卻開啟失敗了呢。 |
我似乎理解错了 CapabilityBoundingSet 的意思 |
這也正是我感到糾結的地方。 說句可能惹人生氣的話:「老東西,你早該被淘汰啦」。 或許需要有一個過渡期比較好? |
其实我也认为 centos6 应该扔掉了 |
现在搞懂了,CapabilityBoundingSet 用于限制最多持有的 cap,AmbientCapabilities 用于在进程没有某个 cap 时增加 cap 因为在之前用的是 root,所以不需要使用 AmbientCapabilities,但是 nobody 是没有 CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW 的,因此需要加上 AmbientCapabilities 才正常 |
@unknowndev233 那應該是這樣麼?
|
是的 |
附议 |
不过在用户变为普通用户时,证书之类的文件可能需要手动设置所有者 |
直接通過 V2Ray 使用證書文件的情況不多,一般是通過 Web server 來使用證書文件了,即便的確需要使用,也只需要證書文件及其所在目錄為 nobody:nogroup 或 nobody:nobody,或是證書文件及其所在目錄對其它用戶有可讀權限即可,我認為還是避免使用 root 為好。 |
但是你我都不知道有多少人直接在 v2ray 直接用证书 |
我參考了兩個模板項目的當前狀況。 vTemplate 需要 V2Ray 直接使用證書文件的有: 為 5/16。 v2ray-template 需要 V2Ray 直接使用證書文件的有: 為 4/19。 並且,有許多人是在使用各類第三方腳本進行部署。 我認為修改是值得的,可以先貼出信息,待一定時間後再進行修改。 |
那就这么做咯 |
@kslr 我能否在 v2ray/manual 和 v2fly/manual 中寫下相關信息,以保證使用者們有足夠的時間來提前瞭解相關修改呢? |
文档中“下载安装”包含了这些信息,更新下就可以了。 |
请教一下各位,这两行,为什么要把.service文件以755的权限安装? |
755 对于配置文件没有意义 |
我之前就一直觉得为什么会往 |
那是包管理器放置包的位置 |
@unknowndev233 是的,第三方安装的可执行文件一般是放 |
是的,但是这是很久以前的历史问题了,不是很快就可以解决的 |
嗯嗯,就是说说哈哈,这个issue不就是解决这个问题的嘛,新的安装方法都有了。 |
不过目前它不是主流,并且 .dat 的位置有些不准确 |
哦?.dat 文件是不是要跟v2ray可执行文件放一起?因为我看配置文件里也没有引用这个文件,所以只能怀疑是v2ray可执行文件直接读取当前目录下的dat了,不知道是不是这样?我是没去了解原理。 |
不是,.dat 其实更适合放在 /usr/share |
哦哦 |
建议在install.direct 中附上文件结构的修改通知 |
geoip.dat 和 geosite.dat 原被放置在 這實際上不符合 FHS,現已被修正為 08-16 前受此錯誤影響的用者,請按照以下示例進行修正:
|
虽然这么做很合理,但是也没必要把以前的安装脚本费了吧?毕竟都是bash脚本,替换了不行么?判断下安装版本不就得了? |
『這裡』有你需要的,你可以建立一個 Fork。 |
感觉你们被微软程序员洗脑了: |
只是不想守着有历史问题的老古董 |
同时维护两个安装脚本很费精力,这次旧安装脚本被废除就是因为它会按照旧文件名来下载 v2ray-core 的 release 来安装,但上游已经改变了 release assets 的命名方式,导致无法使用。 |
新版本怎么用啊,能给个方法吗?不会安装了 |
我找到这个可以 |
总结了一个「升级」步骤,从「 bash <(curl -L -s https://install.direct/go.sh)」 升级到 「bash <(curl https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)」 :
|
Ubuntu 18.04 安装后只能用命令行运行,不能用service运行。 |
@Ardentwheel 我是Ubuntu20.04,你试试用我这个:
不过要注意一下这句:
我用的是分文件配置,你如果是单配置文件应该换成:
|
是证书权限的问题,已经修复了,谢谢 |
FHS 的全稱為「Filesystem Hierarchy Standard」,直譯為「文件系統層次結構標準」。
以下為官方站點:
目前 V2Ray 官方腳本的安裝路徑完全不符合 FHS,以下為當前的安裝路徑:
嚴格來講,這並不利於服務器系統的管理,因為非包管理系統安裝的軟體應當放置於
/usr/local
下,依據「4.9. /usr/local : Local hierarchy」,則路徑為:並且,修改路徑也必定要修改啟動服務文件。
這裡有一個參考項目:
https://github.com/v2fly/fhs-install-v2ray
在此,請各位對其加以審查,確定無誤後,將著手對官方腳本的修改。
對官方腳本的修改並不會影響到各類一鍵腳本,卻會影響到一些相關教程,對此,我認為,教程可以修改,但是,使用規範的安裝路徑,比使用不規範的安裝路徑要好很多。
The text was updated successfully, but these errors were encountered: