ubuntu利用远程桌面连接win7

利用远程桌面工具连接win7

win7的设置

  1. 开始菜单 > 右键点击“我的电脑” > 属性 > 远程

  2. 选择->”允许远程协助连接这台计算机(R)

  3. 选择->允许运行任意版本远程桌面的计算机连接

    第3步如果选“仅允许运行使用网络级别身份验证的远程桌面的计算机连接(更安全)”,验证失败

ubuntu端

1
2
3
$ sudo apt install freerdp2
$ sudo apt install freerdp2-x11
$ sudo xfreerdp /v 192.168.1.123:3389 /u:frank /sec:tls

本次验证说明

本次验证主机为ubuntu20.04,win7为Vbox下的虚拟机,网卡NAT,并做端口转发

windows端有个工具 RemoteApp Tool ,据说可以把提定的程序共享,并融合到客户机,看起来不象是远程一样,但是在linux客户端实验没有成功

2025年1月,实验github上的winapps的项目,就是利用这个原理。我实现在把windows下的文件管理品,融合到客户机。

termux利用工作proot-distro安装linux

termux神器新的工具proot-distro,是一个Bash脚本,用于在Termux中管理与安装proot下Linux发行版。

目前,它支持安装以下发行版:
  1. Alpine Linux
  2. Arch Linux
  3. Kali Nethunter (rootless)
  4. Ubuntu (18.04 / 20.04)
一. 安装如下:
1
$ pkg install proot-distro
二. 然后利和其安装与运行ubuntu的例子如下:
1
2
proot-distro install ubuntu-20.04  # 安装ubuntu20.04或ubuntu-18.04
proot-distro login ubuntu-20.04 # 运行ubnuntu
本人新测安装动行ubtuntu, net-tools vim己安装,/storage目录下是外置sdcard的文件,/sdcard下的目录是内置存储器的文件。
安装位置在 /data/data/com.termux/files/usr/var/lib/proot-distro
三. 进入本ubuntu20.04后,安装软件报错,比如上面的xfe,出错信怎如下:
dpkg: error processing package xxx (--configure)

并且也无法升级 apt update出错。
如何解决呢?

1
2
3
4
5
6
mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
mkdir /var/lib/dpkg/info/
apt-get update
apt-get -f install
cp /var/lib/dpkg/info_old/* /var/lib/dpkg/info/
rm -rf /var/lib/dpkg/info_old

然后就能正常安装了。
以上在升级为termux0.99版后,不会出错,所以不用以上(第三)步骤了。

最好先建立sudo客户,并以sudo客户登录后,再执行以下步骤

四.中文语言设置
1
2
3
4
5
6
$ apt install language-pack-zh-hans* 安装中文包
$ apt install language-pack-gnome-zh-hans* 安装中文包
$ apt install fonts-wqy-*
# $ apt install fonts-wqy-microhei 安装中文字体
# $ apt install fronts-wqy-zenhei 另一个中文字体
$ vim /etc/default/locale

更改内容如下:
LANG=”zh_CN.UTF-8”
LANGUAGE=”zh_CN:en_US:en”
LC_NUMERIC=”zh_CN.UTF-8”
LC_TIME=”zh_CN.UTF-8”
LC_MONETARY=”zh_CN.UTF-8”
LC_PAPER=”zh_CN.UTF-8”
LC_IDENTIFICATION=”zh_CN.UTF-8”
LC_NAME=”zh_CN.UTF-8”
LC_ADDRESS=”zh_CN.UTF-8”
LC_TELEPHONE=”zh_CN.UTF-8”
LC_MEASUREMENT=”zh_CN.UTF-8”

保存后执行

1
$ fc-cache -fv  #最好进行这一步后再安装fcitx,否则有可能输入法不起做用。

则控制台终端己经会出现中文了

五. 然后可安装xfce4桌面

==记得更改阿里源再安装,不然真的是时间太长了。==

1
2
3
4
5
6
7
8
9
$ apt install dbus
$ apt install python3
$ apt install xfce4 xfce4-terminal # 真是花了好长时间
$ apt install tightvncserver # vncserver软件
$ apt install xfe # 一个优秀的文件管理器,带文件查找功能
$ export DISPLAY=127.0.0.1:0
$ export PULSE_SERVER=tcp:127.0.0.1:4713
打开xdsl的APP,然后回到termux下的linux
$ startxfce4
六. 安装过程中发现一些缺失的东东
1
2
$ apt install dialog
$ apt install apt-utils
七. 关于中文输入法
1
2
3
$ apt install fcitx
$ apt install fcitx-config-*
$ apt install fcitx-table-wbpy # 五笔拼音

*** 然面通过VNC或别的XDSL进入XFCE,有fcitx图标,也能看到拼音,五笔输入法,但是却输入不了中文 ***
vim ~/.profile,在结尾加入

#fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”
然后退出图形界面后,重启动。中文输入法可用了。

如果要一进入桌面就有fcitx,则可
1
$ cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/

采用VNC时,五笔可以用,可是采用xdsl却无法切换中文输入。后来发现是xdsl把Ctrl/Alt/Shift三个键占用了。进系统把中文输入法切换键换为F12可解决

进入桌面后,浏览器浏览国内网站好慢,一直不知道神马原因,开始还以为是手机CPU太差了,后来无意中想到可能是DNS的问题
1
2
$ vim /etc/resolv.conf 
增加一行 nameserver=114.114.114.114

Arm64 版的ubuntu 镜像下载地址

https://partner-images.canonical.com/core/
注意这个地址是有许多版本的linux的,比如ubuntu20.10没有,可是我们想装咋办呢?因为proot-distro当前是装不了的。

  1. 先下载 ubuntu20.10的镜像,https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-arm64-root.tar.gz
  2. 进入termux的 /data/data/com.termux/files/usr/etc/proot-distro目录。
  3. cp ubuntu-20.04.sh ubuntu-20.10.sh
  4. vim ubuntu-20.10.sh,把对应的 bonic改为groovy就行了。
  5. 执行 proot-distro install ubuntu-20.10来安装
  6. ubuntu-20.10.sh的内容如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    ##
    ## Plug-in for installing Ubuntu groovy.
    ##

    DISTRO_NAME="Ubuntu 20.10"

    # Returns download URL.
    get_download_url() {
    case "$(uname -m)" in
    aarch64)
    echo "https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-arm64-root.tar.gz"
    ;;
    armv7l|armv8l)
    echo "https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-armhf-root.tar.gz"
    ;;
    i686)
    # Ubuntu groovy does not provide tarballs for x86 32bit.
    ;;
    x86_64)
    echo "https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-amd64-root.tar.gz"
    ;;
    esac
    }

    # Define here additional steps which should be executed
    # for configuration.
    distro_setup() {
    # Hint: $PWD is the distribution rootfs directory.
    #echo "hello world" > ./etc/motd

    # Run command within proot'ed environment with
    # run_proot_cmd function.
    # Uncomment this to do system upgrade during installation.
    #run_proot_cmd apt update
    #run_proot_cmd apt upgrade -yq
    :
    }

termux 与 Anlinux换源

一. termux换源

新版termux采用

1
$ termux-change-repo

老版本termux采用

1
2
3
$ termux-change-repo
$ termux-chroot
$ vim /etc/apt/sources.list

deb https://termux.org/packages/ stable main
改为:

deb https://termux.org/packages/ stable main

deb [arch=all,aarch64] https://mirrors.tuna.tsinghua.edu.cn/termux stable main

二. termu下的ubutnu换源,可是arm64版的linux哦

1
2
$ ./start-ubuntu.sh
root@localhost:~# vim /etc/apt/sources.list

deb http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse
deb-src http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse
改为:

deb http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse

deb-src http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse

阿里源

deb http://mirrors.aliyun.com/ubuntu-ports bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu-ports bionic main restricted universe multiverse

科大源

deb http://mirrors.ustc.edu.cn/ubuntu-ports bionic main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports bionic main restricted universe multiverse

termux中anlinux的ssh server安装与启动

termux中anlinux的ssh server安装与启动

  1. apt install openssh-server

  2. 如果这时候启动ssh后,显示OK,可是查看状态,显示SSH服务并没有运行。开始以为与termux的ssh有冲突,今天网上baidu并学习了一下。成功步骤如下。**
    3.vim /etc/ssh/sshd_config文件。

    1. 把Port 22改为 9022,注意不能是22,也不能是8022
    2. 把PermitRootLogin那一行,注释去掉,改为PermiRootLogin yes
    3. 保存退出。
  3. /etc/init.d/ssh start 启动

    在proot-distro安装ubuntu18.04上,找到的是/etc/init.d/ssh 采用的是 service ssh start 启动成功

  4. /etc/init.d/ssh status查看状态,己经运行。

  5. 在pc上执行 ssh -p 9022 root@192.168.你的IP地址,成功

在caddy安装VtigerCRM7.2

以前是在LAMP下安装过vtigerCRM,但是在使用过caddy后,发现caddy实在是太好用了,方便简洁。就想能不能在caddy下安装配置呢?于是开试,本来菜鸟,走了好多弯路。于是成功后把步骤写来来。

环境为 unbuntu20.04+php7.4+mysql8.0

一. 安装php7, 这里以7.4为例

1
$ sudo apt install -y php7.4-fpm php7.4-cli php7.4-json php7.4-curl php7.4-imap php7.4-gd php7.4-mysql php7.4-xml php7.4-zip php7.4-intl php7.4-imagick php7.4-mbstring php7.4-bcmath
以上php-fpm与caddy配置比较方便,别的组件在与mysql时会用到。

二 . 安装 Mysql

1
$ sudo apt install mysql-server

三. 安装caddy

  1. 自动安装
    1
    $ sudo curl https://getcaddy.com | bash -s personal  #方法一

caddy v2 新的安装方法是

1
2
3
4
$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
$ sudo apt update
$ sudo apt install caddy
  1. 手动安装
    进入https://caddyserver.com/download 点这个链接进入到 caddy 官网的下载界面,网页左侧可以选择平台和插件,如果在 Linux 服务器上使用的话,platform 选择 Linux 64-bit 就可以了,plugins 如果暂时不需要的话,可以不选。然后点击下面的 DOWNLOAD 按钮,就下载到 caddy 了。同理,解压之后用 cp 命令放到 /usr/local/bin/caddy 就完成了安装。

四. 修改 php 配置文件

方法1
1
2
3
$ cd /usr/local/bin
$ ls -l # 查看caddy的用户名:组名,例如是 abc123:abc123
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf # 更改如下:

user = abc123
group = abc123

listen.owner = abc123
listen.group = abc123

pm.max_children = 60 ;改大
request_terminate_timeout = 100 ;改大

方法2
1
2
3
4
$ cd /usr/local/bin
$ ls -l # 查看caddy的用户名:组名,例如是 abc123:abc123
$ sudo chown www-data.www-data caddy #更改caddy所属的用户名:组名
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf # 更改如下:

pm.max_children = 60 ;改大
request_terminate_timeout = 100 ;改大

五. mysql 配置

  1. 修改 /etc/mysql/my.cnf 文件,增加语句

    [mysql] #新增语句
    default-character-set=utf8 #新增语句

    [mysqld] #新增语句
    sql_mode= #新增语句,vtigercrm语明要求为sql_mode值为空,很重要,主要是这一句要增加,不然安装进行不下去
    !includedir /etc/mysql/conf.d/ #原语句
    !includedir —————— #原语句

  2. 创建vtiger空数据库备用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    # 登录MySQL
    $ sudo mysql -u root

    # 新建abc123账号,并设密码:10086, @'%"的意思是外网可访问
    mysql> create user 'abc123'@'%' identified by '10086';

    # 创建数据库,名字叫vtiger
    mysql> create database vtiger;

    # 使上述配置生效
    mysql> flush privileges;

    # 退出
    mysql> exit;

    # 重新以root身份登录MySQL
    $ sudo mysql -u root
    # 给abc123账号授权,对数据库vtiger进行所有操作权限
    mysql> grant all privileges on vtiger.* to 'abc123'@'%' ;
    # 使上述配置生效
    mysql> flush privileges;
    # 退出
    mysql> exit;

    # 登录MySQL
    $ sudo mysql -u abc123 -p
    mysql> show databases;
    # 就可以看到用户abc123下的数据库有vtiger了


    # 使上述配置生效
    mysql> flush privileges;

    # 退出
    mysql> exit

六. Caddyfile

localhost:80 {
gzip
fastcgi / /run/php/php7.4-fpm.sock php {
env PATH / bin
ext .php
split .php
index index.php
}

1
$ caddy

七. 把下载的vtigercrm.tar解压到mywww目录下。

1
2
3
chown www-data:www-data -R ~/mywww/vtigercrm/

chmod 755 -R ~/mywww/vtigercrm/

浏览器运行 localhost/vtigercrm 安装,快完成时会有504 Gateway Timeout,刷新就可以了。

彻底清除mysql

一次不小心把root用户删除了,在mysql8.0下,用老办法没有恢复成功,于是就删掉重装吧,如何彻底删除呢?

1
2
3
4
$ sudo apt-get remove mysql-common #很重要
$ sudo apt-get autoremove --purge mysql-server
$ dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P #清除残留数据
$ dpkg --list|grep mysql # 再次查看MySQL的剩余依赖项

继续删除剩余依赖项,如:sudo apt-get autoremove –purge mysql-apt-config

mysql的两个相关文件需要手动删除、一个是/var/lib/mysql、一个是/etc/mysql。当你删除之后再重新装、如果/var/lib/mysql文件没有删除、则会保留上一个数据库创建的实例、这个一般不是我们想要的、必须删除

安装termux后的初始化

换源,换源是为了更快的升级与安装软件

新版的termux己经增加 termux-change-repo命令来换源了

先升级 (最好先换国内源)

$ pkg update
$ pkg upgrade

如果字体太小或太大(蓝牙键盘或安装黑客键盘操作)

Ctrl+Alt+"++" 字体放大
Ctrl+Alt+"--" 字体缩小

必要的设置

  1. $ termux-setup-storage 允许访问外部存储,会生成/home/storage目录

  2. $ pkg install termux-exec 安装后执行termux-exec并生启,则可以解决脚本 #!/bin/bash出错问题。不过0.84以后的新版己经不用这个了。

  3. ln -s /data/data/com.termux/files/home/storage/shared/BaiduNetdisk baidu 为百度网盘创建快捷方式,以方便数据交换。或用以下方法

  4. 在/home目录下创建 .bash_profile文件,加入

    baidu=”/data/data/com.termux/files/home/storage/shared/BaiduNetdisk 保存并退出。
    以后进入时,只需要执行 $ cd $baidu

必要的安装

  1. $ pkg install proot 安装proot
  2. $ termux-chroot 模似root环境,执行exit命令可回到普通用户
  3. $ pkg install curl wget git unzip unrar 一些必要的工具
  4. $ pkg install vim
  5. $ pkg install python
  6. $ python -m pip install –upgrade pip
  7. $ pkg install openssh 安装ssh server,方便通地电脑与手机的连接

ssh的设置与应用

1
2
$ pkg install openssh # 安装 ssh
$ passwd # 更扆本手机的termux用户密码,以方便电脑的ssh客户端与手机联络

在电脑的终端上,与手机ssh联系的方法是:

1
2
# 首先保证能互相 ping 通
root@localhot: $ ssh -p 8022 u0_xxx@192.168.x.x 然后输入密码就行了。

终端显示用户名与路径,这样不用总是用whoami查用户名了

1
2
3
4
$ termux-chroot
$ vim /etc/profile
在最后一行加上 PS1='[\u@\h $PWD]\n\$ ' 保存,这样在终端会显是 用户名 全路径 换行 $
或 PS1='[\u@\h \w]\n\$ ' home目录以"~"代替

为vim的 YouComplateme插件做准备的安装, 一些python框架也会用到

  1. $ pkg install clang
  2. $ pkg install cmake
  3. $ pkg install python-dev
  4. $ pkg install build-essential

缗辑快捷锓

  1. 编辑~/.termux/termux.properties文件,如果没有目录与文件,就自己建立目录与文件。内容如下:

    extra-keys=[[‘ESC’,’UP’,’DOWN’,’LEFT’,’RIGHT’,’BKSP’,’/‘,’=’,’TAB’,’PGDN’,’PGUP’]]
    extra-keys=[[‘ESC’,’UP’,’DOWN’,’LEFT’,’RIGHT’,’HOME’,’/‘,’END’,’TAB’,’PGDN’,’PGUP’]]
    保存后,重开termux窗口就会显示

caddy配置php的两种办法

一. php-fpm方法

1. 在linux下配置php-fpm

编辑Caddyfile,在中间加入

1
2
3
4
5
fastcgi / /var/run/php/php-fpm.sock {   # 不同版本的linux,目录有可能不同
ext .php
split .php
index index.php
}
2. 在termux下
1
2
3
4
5
6
7
8
9
$ pkg install php-fpm
$ termux-chroot #注,必须在chroot下。测试termux0.84以前版本
$ vim /etc/php-fpm.d/www.conf
把 listen=/data/data/com.termux/files/usr/var/run/php-fpm.sock修改为
listen=127.0.0.1:9000
$ vim Caddyfile 增加
fastcgi / 127.0.0.1:9000 php
$ php-fpm
$ caddy

成功
termux 0.99版测试发现,不用进入chroot下,也能成功了。

3. windows10下,windows不支持sock, 所以此法不可用

二. php-cgi方法

1 linux与termux下用法相同,并且termux不用进入chroot
1
2
3
4
$ vim Caddyfile 增加
fastcgi / 127.0.0.1:9000 php
$ php-cgi -b 9000 &
$ caddy
2.win10下,我采用的是cygwin

下载php-7...zip,并解压到c:\mytools\php-7.*.*目录,进入cygwin终端

1
2
3
$ cd /cygdrive/c/mytools/php-7.*.*
$ ./php-cgi.exe -b 9000 &
后面相同

LAMP-SERVER 与 flask结合

结合php与python二者的优点,哈哈。咱菜鸟就是有奇葩的想法

一 安装 lamp-server 与 phpmyamdin
1
2
3
$ sudo apt install lamp-server^ -y
$ sudo apt install phpmyadmin -y
$ sudo ln -s /usr/share/phpmyadmin /home/me/mywww
二 安装 flask, 并验证其
1
2
3
4
5
6
$ sudo apt install python3
$ python3 -m venv myflask3 #建立虚环境
$ cd myflask3
$ source bin/activate #进入虚环境
$ pip install flask
# 编写 app.py,并验证。此处不多说
三 安装 wsgi
1
2
3
$ sudo apt install libapache2-mod-wsgi 
# 安装后会自动在/etc/apache2/mods-available/目录下生成 wsgi.conf wsgi.loadg两个文件
# /usr/lib/apache2/moudules/在wsgi两个文件
四 试验 wsgi 是否可用
  1. 在/var/www/目录下编写test.wsgi文件,内容为
    1
    2
    3
    4
    5
    6
    def application(environ,start-response)
    status="200 OK"
    output="Hellow,apache2+wsgi"
    response_headers=[('content-type','text/plain'),('contnet-type',str(len(output)))]
    start_response(status,response_headers)
    return[output]
  2. 修改/etc/apache2/apache2.conf 在末尾加上
    WSGIScriptAlias /test /var/www/test.wsgi
  3. 重启动apache2
    1
    $ sudo service apache2 restart 
    浏览器输入 localhost/test,如果网页上能看到 Hello,apache2+wsgi,则说明成功
五 把第二步的app.py改名为app.wsgi,并编辑
1
2
3
4
5
6
7
8
9
10
11
#coding:utf8  必须加,否则网页无法显示中文

activate_this = "/home/me/myflask/bin/activate_this.py" #让wsgi知道启动脚本的环境
exfile(activate_this,dict(__file__=activate_this))

from flask import Flask

application=Flask(__name__) # wsgi的应用对象必须命名为application,所以不是app
@application.rout('/')
def index():
return( " <H2>你好,apache2+flask! </H2>" )
六,再次编辑/etc/apache2/apache2.conf,在末尾

WSGIScriptAlias app /home/me/myflask/app.wsgi
重启apache服务,浏览器输入 localhost/app ,发现失败了。
查看apache2的错误信息

1
2
$ tail -f /var/log/apache2/error.log # 发现是存取目录失败。于是再次 
$ sudo vim /etc/apache2/apache2.conf

在末尾添加
| <Directory /home/me/myflask>
| require all granted
| require host ip
| Allow from all
|
保存退出,重启apache, 然后浏览器,成功得到flash的信息。

LAMP安装后,phpmyadmin无法空密码登录

LAMP刚安装完后,mysql的用户root密码是空的,导致phpmyadmin无法登录,该如何解决呢?

一 安装 lamp-server 与 phpmyamdin
1
2
3
$ sudo apt install lamp-server^ -y
$ sudo apt install phpmyadmin -y
$ sudo ln -s /usr/share/phpmyadmin /home/me/mywww
二 修改 phpmyadmin配置
1
2
3
4
5
6
$ cd /usr/share/phpmyadmin/libraries
$ vim config.default.php
# 305行 $cfg['Servers'][$i]['nopassword']=false;
# 538行 $cfg['Servers'][$i]['AllowNopassword']=false;
# 把以上的false 改为 true
# 大约270行 $cfg['Servers][$i]['password']='';

保存后,则phpmyadmin允许空密码登录了。然而用root用户名依然不能登录!!!

四 查原因

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo mysql
mysql> use mysql
mysql> select user,plugin from user;
+--------------------+-------------------------+
| user | plugin |
+--------------------+-------------------------+
| debian-sys-maint | mysql_native_password |
| mysql.infoschema | mysql_native_password |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| phpmyadmin | mysql_native_password |
| root | auth_socket |
+--------------------+-------------------------+
# plugin=auth_socket则表示不允许ph登录, 所认必须把 root的plugin属性改为mysql_native_password

但是可以用phpmyadmin的用户名来登录

修改 root的plugin属性

1
2
3
mysql> update user SET plugin='mysql_native_password' WHERE user='root';
mysql> flush privileges;
mysql> quit;

修改 root的密码

1
mysql> set password for 'root'@'localhost' = password('你设置的密码'