logo
10
5
WeChat Login

解决 connect: connection refused 问题#1

Resolved
created 2 months ago
Edit

解决该问题的好处

拖pdf到第二个窗口只是个临时的办法,因为双击pdf导航等功能无法实现,还是差点意思,所以修复一下问题会比较好。

原因

出现 dial tcp 172.17.0.48:45639: connect: connection refused 的原因是 latex workshop 默认只在本机 loopback 接口(127.0.0.1:45639)监听

root@xxx:/workspace# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8686            0.0.0.0:*               LISTEN      310/node            
tcp        0      0 127.0.0.1:45639         0.0.0.0:*               LISTEN      426/node               
tcp        0      0 0.0.0.0:36000           0.0.0.0:*               LISTEN      327/sshd: /usr/sbin 

因而通过172.17.0.48:45639 这个 localhost 地址访问不到。

解决方案

我们需要转发 127.0.0.1:45639 的内容到另一个端口 0.0.0.0:45640,然后打开 45640 端口

step1: 安装 socat

apt-get update && apt-get install -y socat

step2: 转发

socat TCP-LISTEN:45640,reuseaddr,fork,bind=0.0.0.0 TCP:127.0.0.1:45639

step3: 查看端口是否建立成功

新建一个 terminal,输入netstat -tlnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8686            0.0.0.0:*               LISTEN      310/node            
tcp        0      0 127.0.0.1:45639         0.0.0.0:*               LISTEN      426/node            
tcp        0      0 0.0.0.0:45640           0.0.0.0:*               LISTEN      3631/socat          
tcp        0      0 0.0.0.0:36000           0.0.0.0:*               LISTEN      327/sshd: /usr/sbin 

看到0.0.0.0:45640就说明成功了

step4: 查看完整的pdf地址

方法1:简单

点击左边工具栏的 TEX 图标 -> View Latex PDF -> View in web browser -> 查看导航栏的地址

方法2:更多细节

点击 OUTPUT 然后在右边的下拉菜单中找到 Latex Workshop, 然后能看到

[13:37:17.689][Viewer][Panel] Internal PDF viewer at https://j5b10pgwvx-45639.cnb.run/viewer.html?file=pdf..ZmlsZSUzQSUyRiUyRiUyRndvcmtzcGFjZSUyRm1haW4lMkZtYWluLnBkZg

这样的日志。

step5: 修改链接

将上面日志中链接的端口号改成 45640,然后将完整的链接粘贴到浏览器就可以访问了,测试 ctrl + 双击 可以正确导航了!
https://j5b10pgwvx-45640.cnb.run/viewer.html?file=pdf..ZmlsZSUzQSUyRiUyRiUyRndvcmtzcGFjZSUyRm1haW4lMkZtYWluLnBkZg

TODO

  • 希望能够将上面的内容增加到 docker 镜像或者 cnb.yml 文件里面
  • 目前只能手动去修改端口,希望能一步到位
Creator

找到解决方法了,直接 CTRL + ALT + P 打开 vscode 命令面板 -> 输入 LaTeX Workshop: Change server listening hostname -> 输入 CONFIRM 确认要修改 -> 输入 0.0.0.0 即可完美解决问题!

1

端口是动态的,转发不行。只能通过执行插件给的命令了

文档已更新,感谢反馈。刚刚看了下code-server的命令行没给出执行命令的操作,唯一办法就是每次进入的时候手动执行一下命令,官方文档有提到存在严重漏洞,不过CNB上面都是临时的环境,没啥更好的方法了。

Creator

端口是动态的,转发不行。只能通过执行插件给的命令了

@arsrna(Ar-Sr-Na) 端口倒是通过latex workshop里面的配置固定住,但是不如输入指令的方法更直接。

Resolved ISSUE
Assignee
None yet
Label
None yet
Priority
None yet
Time period
-
Property
Add custom properties to record and label key information
Participant