-
Notifications
You must be signed in to change notification settings - Fork 1.6k
关于和宝塔面板共存(涉及80和443端口修改) #865
Description
开头先说下抱歉,本issue并不是提出问题和建议,而是在解决和宝塔共存及端口修改过程中做了诸多尝试后貌似能够正常运行,因此分享一下经验。
另外看到作者貌似已经不再维护本项目了,因此占用一个issue的位置为后来者遇到同样的问题时提供一些思路。
下面说下我的做法
我是先安装的宝塔面板的LNMP,然后安装本仓库,这是我的环境。
由于宝塔面板及nginx会占用80和443端口,因此后安装trojan会遇到端口被占用的问题。
我是分两部走的:
- 443端口。直接使用命令行的修改端口功能修改为了4433端口。
- 面板的80端口。
日志中显示:
[FATAL] fatal: use_certificate_chain_file: no start line
[FATAL] exiting. . .
trojan.service: Main process exited, code=exited, status=1/FAILURE
trojan.service: Failed with result 'exit-code'.
trojan.service: Scheduled restart job, restart counter is at 863.
Stopped trojan.service - trojan.
Started trojan.service - trojan.
Welcome to trojan 1.16.0
可以看到错误的原因在于证书不存在,虽然我在安装trojan的时候选择安装证书,并且也做了dns解析,但一直出现此错误,卸载后重新安装代码依然如此。因此尝试用命令行的证书申请功能重新申请证书,但会出现下述错误:
......
[ 2025] _currentRoot='no'
[ 2025] Standalone mode.
[ 2025] _checkport='80'
[2025] _checkaddr
[2025] Using: ss
[2025] LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1098175,fd=11),("nginx",pid=490,fd=11))
[2025] tcp port 80 is already used by (("nginx",pid=1098175,fd=11),("nginx",pid=490,fd=11))[2025] Please stop it first
[2025] _on_before_issue.
可以看到证书申请不下来的原因是80端口被占用了。
先按wiki的方法修改端口:
修改/etc/systemd/system/trojan-web.service 配置文件
在/usr/local/bin/trojan web 后面添加 -p port
然后运行:
systemctl daemon-reload
systemctl restart trojan-web
我这里是把端口改成了9000。
但此时如果用命令行申请证书依然申请不下来,还是和刚才一样提示被占用,但此时使用 http://域名:端口 已经可以访问web界面了。
接下来去宝塔面板新建一个网站,域名就是trojan的域名,然后使用宝塔为该网站生成ssl证书,证书的路径为/www/server/panel/vhost/cert/域名/,接下来使用trojan的命令行申请证书功能,但是这次选择自定义证书路径,cert文件路径为/www/server/panel/vhost/cert/域名/fullchain.pem,key文件路径为/www/server/panel/vhost/cert/域名/privkey.pem,随后再手动重启trojan,可以发现trojan已经跑起来了,宝塔面板原先建立的其他网站也能正常打开,实现共存。
至于wiki里提到的修改nginx配置文件,我也试过,改不改好像都能共存,如果遇到按上面步骤下来后还是有问题,可以尝试修改一下nginx的配置文件。
另外再贴两个找到的共存方法的操作帖子,我没按照帖子的方法操作,但如果上述方法不行的话可以试一下。
http://www.woaioa.com/?id=25
https://wkings.blog/archives/932#google_vignette
另外最后要说的就是及时修改web面板的密码,还有就是这种方法下web面板是http的而非https,存在安全隐患,如果没有特别需求,可以直接在防火墙中禁止web端口。