这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

网络通讯类软件

Linux Mint 下日常使用的网络通讯类软件的安装和配置。

1 - discord

Linux Mint下discord的安装使用

下载

https://discord.com/download

安装

deb标准安装

正确的启动方式

命令行启动:

$ discord --proxy-server=http://192.168.0.30:7890

也可以进入目录 /usr/share/discordsudo vi discord.desktop修改 :

Exec=/usr/share/discord/Discord --proxy-server=http://192.168.0.30:7890

在这里增加代理配置。之后点这个图标就能带着代理信息启动discord了。可以将这个图标拖到桌面。

但很遗憾,固定到panel时,无法生效。

参考:

附录:代理问题

启动之后卡在 update 界面,估计是网络被墙了。在命令行中启动discord,可以看到日志:

$ discord       
Discord 0.0.17
Starting app.
Starting updater.
[Modules] Modules initializing
[Modules] Distribution: remote
[Modules] Host updates: enabled
[Modules] Module updates: enabled
[Modules] Module install path: /home/sky/.config/discord/0.0.17/modules
[Modules] Module installed file path: /home/sky/.config/discord/0.0.17/modules/installed.json
[Modules] Module download path: /home/sky/.config/discord/0.0.17/modules/pending
[Modules] No updates to install
[Modules] Checking for host updates.
Error downloading with electron net: network timeout: https://discord.com/api/updates/stable?platform=linux&version=0.0.17
Falling back to node net library..
[Modules] Host is up to date.
[Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json
Error downloading with electron net: network timeout: https://discord.com/api/modules/stable/versions.json
Falling back to node net library..
......

开启全局翻墙之后,可以顺利通过上面报错的地方,但是又会报错

[WebContents] did-fail-load -200 ERR_CERT_COMMON_NAME_INVALID retry in 1000 ms
(node:60932) electron: Failed to load URL: https://discordapp.com/app?_=1651047018860 with error: ERR_CERT_COMMON_NAME_INVALID
(Use `discord --trace-warnings ...` to show where the warning was created)
[WebContents] retrying load https://discordapp.com/app?_=1651047018860
[WebContents] did-fail-load -200 ERR_CERT_COMMON_NAME_INVALID retry in 2526.0695510375936 ms
(node:60932) electron: Failed to load URL: https://discordapp.com/app?_=1651047018860 with error: ERR_CERT_COMMON_NAME_INVALID
[WebContents] retrying load https://discordapp.com/app?_=1651047018860
[WebContents] did-fail-load -200 ERR_CERT_COMMON_NAME_INVALID retry in 4139.532933476243 ms
(node:60932) electron: Failed to load URL: https://discordapp.com/app?_=1651047018860 with error: ERR_CERT_COMMON_NAME_INVALID

但这个问题似乎不会影响 discord 的启动。全局翻墙之后 discord 可以正常使用。

尝试过,设置 all_proxy, http_proxy 等方式对 discord 无效。

2 - 网络会议软件

Linux Mint 下网络会议软件

2.1 - 腾讯会议

Linux Mint 腾讯会议的安装使用

下载

https://meeting.tencent.com/download-center.html

选择 x86_64 版本

安装

deb 标准安装

配置

主要是将声音配置一下。

3 - 远程桌面软件Remmina

Remmina 是一个远程桌面软件。

安装

可以通过软件管理器直接安装,“开始菜单” -> “系统管理” -> “软件管理器”,搜索 remmina

需要使用软件管理器安装 remmina 和 插件:

  • remmina
  • remmina-plugin-rdp: 这个一定要安装,连接windows桌面就是走 RDP 协议
  • remmina-plugin-vnc

使用

连接 windows

安装完成之后, 打开 remmina, “connection” -> “new”, Protocol 选 “RDP - Remote Desktop Protocol”, 设置链接参数和账号, 就可以连接到 windows 桌面.

ubuntu18.04

https://www.techrepublic.com/article/how-to-enable-remote-desktop-connections-in-ubuntu-18-04/

4 - Clash上网软件

Remmina 是一个上网软件。

下载安装

https://github.com/Dreamacro/clash/releases

下载 clash-linux-amd64-v1.4.2.gz 文件,解压缩之后移动:

chmod +x clash-linux-amd64
mv clash-linux-amd64 clash
sudo mv clash /usr/local/bin/

执行 clash 进行初始化:

$ clash
INFO[0000] Can't find config, create a initial config file 
INFO[0000] Can't find MMDB, start download              
INFO[0000] HTTP proxy listening at: 127.0.0.1:7890  

此时生成的配置文件在 ~/.config/clash/config.yaml 中,可以配置clash的接口、参数、链接信息等。 ip数据库文件地址是 ~/.config/clash/config.yaml/Country.mmdb

配置 clash

修改 ~/.config/clash/config.yaml 文件,默认生成的内容只有port一个参数:

port: 7890

退出clash,修改配置文件为:

#http代理
# port: 7890
#socks代理
# socks-port: 7891
# redir-port: 7892
# tproxy-port: 7893

mixed-port: 7890
allow-lan: true
bind-address: "*"
#运行模式: 规则Rule,全局Global,直连Direct
mode: rule
#log-level: silent
log-level: info
#管理ip和端口
external-controller: '0.0.0.0:9090'
#管理密码
secret: '12345678'

然后配置的其他内容,如各种服务器,需要从代理提供商那边获取,通常会给一个url,比如 https://efanyun.me/clash/11629/3xNXXXXX/ ,用浏览器访问这个地址将文件下载下来,将里面的服务器配置信息复制到上面的配置文件中。

dns:
  enable: true
  # listen: 0.0.0.0:53
  ipv6: false

  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - 114.114.114.114
  enhanced-mode: redir-host
  fake-ip-range: 198.18.0.1/16
  use-hosts: true
  nameserver:
    - https://dns.alidns.com/dns-query
    - https://dns.rubyfish.cn/dns-query
    - https://223.5.5.5/dns-query
    - https://dns.pub/dns-query
  fallback:
    - tls://8.8.8.8:853
    - tls://dns.rubyfish.cn:853
    - https://1.0.0.1/dns-query
    - https://public.dns.iij.jp/dns-query
    - https://dns.twnic.tw/dns-query
  fallback-filter:
    geoip: true
    ipcidr:
      - 240.0.0.0/4
      - 0.0.0.0/32

proxies:
- name: 香港1
......

然后启动clash,从日志能看到:

$ clash
INFO[0000] Start initial compatible provider 故障转移       
INFO[0000] Start initial compatible provider 自动选择       
INFO[0000] Start initial compatible provider 节点选择       
INFO[0000] Mixed(http+socks5) proxy listening at: :7890 
INFO[0000] RESTful API listening at: 0.0.0.0:9090 

浏览器打开控制台地址:

http://clash.razord.top/

在控制台页面,点击 “设置” -> “外部控制设置”,填入地址:

  • Host:127.0.0.1
  • 端口: 9090
  • 密钥: 12345678

之后就可以通过控制台页面进行配置了,但要注意的是:控制台页面操作的结果并不会保存到配置文件,只能是临时生效。

参考文档

5 - 使用终端做ssh client

使用终端做ssh client

发现 putty 和 Remmina 做 ssh 客户端都不是太好用, 远不如 windows 平台上的 securyCrt 和 putty.

后来看到很多人都推荐直接用linux的终端做 ssh client, 简单敲个 “ssh server_name” 就连上去了,体验上也和和本地一致。

自动登录

为了减少每次敲击密码的麻烦, 还可以通过authorized_keys的方式来自动登录:

  1. 上传本机的 .ssh/id_isa.pub 文件到服务器端

  2. 在远程服务器上运行

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    
  3. 在本机终端中输入 “ssh server_address” 即可自动登录

6 - 安装微软Edge浏览器

微软Edge浏览器是目前最好用的浏览器了,我用它替换了google的chrome

参考:

https://linuxhint.com/install-microsoft-edge-browser-ubuntu/

安装方式:

sudo apt install software-properties-common apt-transport-https wget
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main"
sudo apt update
sudo apt install microsoft-edge-stable

7 - Teams

安装微软Teams

下载安装

Teams 有支持 ubuntu 的preview 版本,直接下载 deb 文件安装即可

https://www.microsoft.com/en-us/microsoft-teams/download-app

Linux DEB (64-bit)

登录微软帐号

比较麻烦的在 ubuntu 上登录微软的帐号。

安装 intune app

参考文档为:

https://learn.microsoft.com/en-us/mem/intune/user-help/microsoft-intune-app-linux

准备完成之后,执行:

$ sudo apt install intune-portal
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 intune-portal : Depends: libssl1.1 (>= 1.1.0) but it is not installable
                 Depends: msalsdk-dbusclient (>= 1.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

缺少依赖包,libssl1.1 可以从这里下载:

https://packages.ubuntu.com/bionic/amd64/libssl1.1/download

msalsdk-dbusclient 安装时发现还缺少依赖包:

sudo apt install msalsdk-dbusclient

The following packages have unmet dependencies:
 msalsdk-dbusclient : Depends: libsdbus-c++0 (>= 0.8.3) but it is not installable

libsdbus-c++0 ,可以从下面的页面下载 64-bit deb package 安装:

https://www.ubuntuupdates.org/package/core/focal/universe/backports/libsdbus-c%2B%2B0

再次安装 msalsdk-dbusclient:

$ sudo apt install msalsdk-dbusclient

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  microsoft-identity-broker microsoft-identity-diagnostics
The following NEW packages will be installed:
  microsoft-identity-broker microsoft-identity-diagnostics msalsdk-dbusclient
0 upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
......
Setting up msalsdk-dbusclient (1.0.1) ...
Processing triggers for dbus (1.12.20-2ubuntu4.1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...

启动 intune

按照要求:

https://learn.microsoft.com/en-us/mem/intune/user-help/enroll-device-linux

遇到问题: 在 intune 登录时,输入用户名(微软邮箱)后,直接报错:

Terms of User Error

We couldn't sign you in. Please try again, or contact your administrator.

无法解决,只能放弃。

8 - 挂载 windows 共享目录

为了方便使用 windows 共享的目录,最好能直接 mount 进来。

为了方便使用 windows 共享的目录,最好能直接 mount 进来。

安装

需要安装 cifs-utils

apt-get install cifs-utils

挂载

使用 mount 命令装载:

sudo mkdir /mnt/nas/d
sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 //192.168.0.30/d/ /mnt/nas/d
  • username 和 password 是访问 windows 共享目录需要的账户密码
  • rw 表示可以读写
  • uid和gid 可以通过 id 命令看到,设置之后mount之后的目录就可以方便当前用户直接读写访问
  • //192.168.0.30/d/ 是 smb 的共享路径,可以通过 “smb://192.168.0.30/d/” 访问验证
  • /mnt/nas/d 是装载的目标路径,必须事先存在,可以在 mount 之前先创建好

卸载

不需要使用时,可以 umount 卸载:

sudo umount /mnt/nas/d

改进脚本

为了方便使用,避免反复输入上面的 mount 命令,一个比较常见的做法是开机自动装载。但是考虑到我的笔记本是在公司和家里移动,而两边可以 mount 的东西不一样。另外也不是每次开机都需要 mount。

因此选择了自己准备脚本,需要时手工执行。另外不想 mount 到 /mnt/ 下,也不想 mount 为 root 账号。

最后的解决方式是,我在自己的 home 目录下建立了一个 mount 子目录,然后将需要的 mount 和 umount 脚本扔进去。需要时执行对应 mount 脚本,就将 windows 共享目录 mount 到 /home/myid/mount 下,而且当前用户有读写权限,使用非常方便。

以 mount-nas.sh 为例,内容如下:

#!/bin/bash

CURRENT=`pwd`

# 我的 nas 是台普通windows电脑,共享了几个盘符
NAS_FOLDERS=("d" "m" "n" "p")

for nas_folder in ${NAS_FOLDERS[@]};do
	target_folder="$CURRENT/nas-$nas_folder"
	if [ ! -d "$target_folder" ]; then
		mkdir $target_folder
		echo "create folder: $target_folder"
	fi

	sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 "//192.168.0.30/$nas_folder/" $target_folder
done

read -n1 -p "Press any key to exit..."

同时准备了一个 umount-nas.sh 脚本,方便卸载:

#!/bin/bash

CURRENT=`pwd`

NAS_FOLDERS=("d" "m" "n" "p")

for nas_folder in ${NAS_FOLDERS[@]};do
	target_folder="$CURRENT/nas-$nas_folder"
	if [ -d "$target_folder" ]; then
		sudo umount $target_folder
		if [ $? -eq 0 ];then
			echo "success to umount $target_folder"
		else
			echo "fail to umount $target_folder"
		fi
	fi
done

read -n1 -p "Press any key to exit..."

9 - [归档]SSH代理服务器

SSH 可以实现最为快捷的代理服务器,在没有其他代理服务器软件的情况下,可以作为一个临时解决方案使用。

实测: 很不稳定,没有使用价值。可能是服务器端那边做了检查和防范。

代理服务器

  1. 建立隧道

    在本地执行以下命令:

    ssh -D 10085 remote_server_address
    
  2. 设置代理

    在浏览器中设置代理服务器连接为 “socket4”,链接到 “127.0.0.1/10085” 端口。

翻墙

如果远程服务器在国外, 那么这个 ssh 代理服务器 就实现了 翻墙 的功能.

工作原理和用 putty 设置 dynamic 是一样的.