ubuntuサーバー18.04の最初の構成

ubuntuサーバー18.04の最初の構成


ノート情報

  • aliyunソースを更新
    • http://mirrors.aliyun.com/ubuntu/
  • vmware に環境をインストールした後、仮想マシンはホスト マシンでコピー アンド ペーストできなくなります。問題を解決するには次の方法を使用できます。
    • VMware バージョン:pro 14.1.8 build-14921873
    • sudo apt-get install -y open-vm-tools-desktop
  • vim .config/i3/config に次のように入力します
    • exec --no-startup-id vmware-user
  • ウィンドウ サイズの自動化は、vmtools をインストールすることで解決できます
  • Ubuntuサーバーネットワークを再起動します
    • sudo systemctl restart systemd-networkd.service
  • 仮想ボックス共有フォルダーの権限の問題を解決する
    • sudo usermod -aG vboxsf $(whoami)
    • これは、共有ディレクトリの所有者グループが vboxsf であるため、現在のユーザーを vboxsf ユーザー グループに追加することです。
    • このコマンドを実行した後、有効にするためにシステムを再起動する必要があります。または、すべての構成を実行した後に再起動することもできます。
  • vim に自动补全coc-nvin プラグインが必要な場合は、vim8.2 以降をインストールする必要があります
    • sudo add-apt-repository ppa:jonathonf/vim
    • sudo apt-get アップデート
    • sudo apt-get install -y vim vim-gtk3 vim-gui-common
    • このデモにはこのプラグインは必要ありません。コードは vscode を使用して記述されていますが、vscode はメモリを大量に消費します。

ワンクリック

  • vim8.2 をインストールします (coc-nvim が必要)
    • sudo add-apt-repository ppa:jonathonf/vim
    • sudo apt-get アップデート
    • sudo apt-get install -y vim vim-gtk3 vim-gui-common
  • sudo apt-get install -y vim vim-gui-common git Tree exuberant-ctags cscope unrar sshpass uml-utilities Bridge-utils zip lxAppearance papirus-icon-theme bison flex libncurses5-dev libssl-dev minicom gitk net-tools qemu zsh clang -10 openjdk-8-jdk
  • sudo apt-get install -y
    • i3 lightdm lightdm-gtk-greeter nautilus gedit firefox feh alsamixergui pavucontrol build-essential make cmake perl terminator
    • fcitx-googlepinyin 言語パック-zh-his fonts-wqy-microhei fonts-wqy-zenhei xfonts-intl-chinese
    • openssh-server samba smbclient cifs-utils tftp-hpa tftpd-hpa nfs-kernel-server nfs-common
    • ubuntu-restricted-extras flashplugin-installer vlc iverilog gtkwave python3-pip

i3wm

  • sudo apt-get install -y i3 lightdm lightdm-gtk-greeter nautilus gedit firefox feh alsamixergui pavucontrol build-essential make cmake perl terminator

    • Lightdm が Ubuntu のデフォルトであるため、lightdm を選択します。
    • sudo dpkg-reconfigure lightdm を再選択することもできます
  • sudo apt-get -y gnome-* を削除します

    • sudo apt-get install -y nautilus
    • sudo apt autoremove -y
    • 注: nautilus が Ubuntu サーバー 20.04 にインストールされている場合、gnome がデスクトップにログインできないようにします。
  • よく使われる

    • fehは壁紙の設定と写真の表示に使用されます

    • サウンドを制御するための pavucontrol を備えた alsamixergui

    • i3wmの使用方法については、「A.2 i3wmでよく使うショートカットキー」を参照してください。

    • 再起動後、タイムゾーンを設定します

      • sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
      • sudo hwlock --systohc
    • オートスリープをオフにする

      • systemctl status sleep.target でスリープ状態かどうかを確認します
      • sudo systemctl マスク sleep.target stop.target hibernate.target hybrid-sleep.target 休止状態をオフにする
    • 画面を設定する

      • xset q         #查看当前屏保设置
        xset s 5       #5秒后黑屏
        xset s off     #关闭黑屏
        xset dpms 5    #5秒后关闭显示器
        xset -dpms     #取消自动关闭显示器
        xset b off/on  #关闭或开启黑屏提示音
        
    • 設定ファイルは $HOME/.config/i3/config です。

      • exec --no-startup-id xset s 0 スクリーンセーバーをオフにする
      • exec --no-startup-id xset dpms 6000 8000 9000 黒画面、スリープ、電源オフの時間をそれぞれ 6000 秒、8000 秒、9000 秒に設定するか、両方に 0 を書き込んで、時間が永続的であることを示すこともできます。

グーグルで調べました

  • sudo apt-get install -y fcitx-googlepinyin
    • 入力モードをfcitxに切り替え、im-configコマンドを使用してグラフィカルな操作を実現し、コンピュータを再起動します。
    • 次に、fcitx-configtool をグラフィカルに開き、googlepinyin 入力メソッドを追加します。
    • 中国語の言語パックをインストールした後に再起動します: sudo apt-get install language-pack-zh-hans
    • 中国語フォントのインストール後に再起動します: sudo apt install fonts-wqy-microhei fonts-wqy-zenhei xfonts-intl-chinese

ssh

  • SSHサービスをインストールする
    • sudo apt-get install -y openssh-server
  • 起動
    • sudo /etc/init.d/ssh 開始
  • ファイアウォールをオフにする
    • sudo ufwを無効にする
  • 成功した場合は接続が通過していることを確認します
    • SSHローカルホスト
  • git 構成
    • git config --global user.name xxx
    • git config --global user.email [email protected]
    • git config --global core.editor vim
  • ssh-keygen -t rsa -C [email protected]

サンバ

インストール: sudo apt-get install -y samba smbclient cifs-utils
設定: 設定ファイル smb.conf、sudo vim /etc/samba/smb.conf を開き、次のように入力します。

#本机配置
security = user

[aldrich]
   path = /home/aldrich
   browseable = yes
   public = no
   writable = yes
   valid users = aldrich

リブート

  • sudo smbpasswd -a aldrich #samba ユーザーのパスワードを設定する
  • sudoサービスsmbdの再起動
    • あるいは、 sudo /etc/init.d/smbd restart

  • sudo mount.cifs -o user=aldrich //10.106.xx.xx/aldrich /mnt
    • マウントし、Ubuntu で別の Samba をローカルにマッピングします。

TFTP

インストール: sudo apt-get install -y tftp-hpa tftpd-hpa

  • tftp-hpa はクライアントです。
  • tftpd-hpaはサーバー側です

ディレクトリを作成します。

  • mkdir -p ~/tftproot
  • chmod 777 ~/tftproot

設定: sudo vim /etc/default/tftpd-hpa

  • TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/home/aldrich/tftproot"
    TFTP_ADDRESS=":69"
    TFTP_OPTIONS="-l -c -s"
    

再起動: sudo サービス tftpd-hpa 再起動

  • systemctl status tftpd-hpa.service #ステータスの表示
  • systemctl start tftpd-hpa.service #Start

テスト: 次の方法で tftp が正常かどうかをテストできます。

  • $ cd ~/tftpboot echo "hello tftp service">>a.txt
    $ echo "hello tftp service,put to tftp serive">>b.txt
    $ tftp localhost
    tftp> get a.txt
    tftp> put b.txt
    tftp> quit
    #其中get是取得文件, put是将文件上传到TFTP服务器上。
    

NFS

インストール

  • sudo apt-get install -y nfs-kernel-server nfs-common

設定: sudo vim /etc/exports

  • $ cat /etc/exports
    /home/aldrich *(rw,sync,no_root_squash,no_subtree_check)
    #直接使用根目录做nfs具有很高的灵活性
    

ディレクトリを作成し、ファイルを作成します。

  • mkdir -p /home/aldrich/devnet/nfs;
  • touch /home/aldrich/devnet/nfs/a.txt

nfs サービスを再起動します。

  • sudo サービス nfs-kernel-server 再起動

NFS サービスが正常かどうかをテストする

  • sudo mount -t nfs -o nolock 127.0.0.1:/home/aldrich/devnet/nfs /opt
  • sudo umount /opt

閃光

Firefox Web ビデオには Flash プラグインが必要です

  • sudo apt-get install -y ubuntu-restricted-extras flashplugin-installer vlc

ボール紙

インストール

  • sudo apt-get install -y iverilog gtkwave

送信元

// 新建led_demo.v源文件
module led_demo(
    input clk,
    input rst_n,

    output reg led
);

reg [7:0] cnt;

always @ (posedge clk)
begin
    if(!rst_n)
        cnt <= 0;
    else if(cnt >= 10)
        cnt <= 0;
    else 
        cnt <= cnt + 1;
end

always @ (posedge clk)
begin
    if(!rst_n)
        led <= 0;
    else if(cnt == 10)
        led <= !led;
end

endmodule

テストベンチ

// 仿真testbench文件led_demo_tb.v
`timescale 1ns/100ps

module led_demo_tb;

parameter SYSCLK_PERIOD = 10;

reg SYSCLK;
reg NSYSRESET;

initial
begin
    SYSCLK = 1'b0;
    NSYSRESET = 1'b0;
end

/*iverilog编译器专用的语句,如果不加的话后面不能生成vcd文件*/
initial
begin
    $dumpfile("wave.vcd");        //生成的vcd文件名称
    $dumpvars(0, led_demo_tb);    //tb模块名称
end
/*iverilog */

initial
begin
    #(SYSCLK_PERIOD * 10 )
        NSYSRESET = 1'b1;
    #1000
        $stop;
end

always @(SYSCLK)
    #(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;

led_demo led_demo_ut0 (
    // Inputs
    .rst_n(NSYSRESET),
    .clk(SYSCLK),
    // Outputs
    .led( led)
);

endmodule

编译:iverilog -o wave led_demo_tb.v led_demo.v

  • 複数の .v モジュールが呼び出される場合は、-y パラメーターを使用してソース ファイルのパスを指定できます。指定しないと、コンパイル時にエラーが報告されます。ソースファイルがすべて同じディレクトリにある場合は、./絶対パスで直接指定できます。

wave ファイルを生成します: vvp -n wave -lxt2 # vcd wave ファイルを生成します

wave ファイルを開く: gtkwave wave.vcd

make.sh バッチ処理、ワンクリック実行

echo "开始编译"
iverilog -o wave led_demo.v led_demo_tb.v
echo "编译完成"
vvp -n wave -lxt2
echo "生成波形文件"
cp wave.vcd wave.lxt
echo "打开波形文件"
gtkwave wave.lxt

パイソン

  • sudo apt-get install -y python3-pip

  • pip3 インストール

    • sudo python3 -m pip install --upgrade pip setupTools -i https://pypi.tuna.tsinghua.edu.cn/simple
    • sudo pip3 install --upgrade pyinstaller numpy pandas sciPy scikit-Learn matplotlib kerascrapy gensim pyzmq flask -i https://pypi.tuna.tsinghua.edu.cn/simple
    • シリアル関連: sudo pip3 install --upgrade psutil xmodem pyprind pyftdi -i https://pypi.tuna.tsinghua.edu.cn/simple
    • sudo pip3 install --upgrade opencv_python-4.5.4.60-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
  • プラグイン 説明する
    しこり 配列サポートとそれに対応する効率的な処理機能を提供します
    パンダ 強力で柔軟なデータ分析および探索ツール
    サイピー 行列のサポートと行列関連の数値計算モジュールを提供します
    マットプロットライブラリ 強力なデータ視覚化ツールとグラフ作成ライブラリ
    scikit-Learn 回帰、分類、クラスタリングなどの強力な機械学習ライブラリをサポート
    難しい ニューラル ネットワークと深層学習モデルを構築するための深層学習ライブラリ
    国家として テキストトピックモデリング用のライブラリ。テキストマイニングに役立つ可能性があります

vimplug

  • cスコープ
    • autoload_cscope.vim、cscope ライブラリを自動的にロードします
  • クタグ
    • vim-gutentags、タグを自動的に生成
  • Doxygenツールキット
  • タグリスト
  • マーク.vim
    • vim-ingo-library に依存します
  • バッファエクスプローラー
  • クイックフィックス(内蔵)
  • 検索中
  • オタクコメント
  • オタクツリー
  • ライトライン
  • リーダー
  • coc.nvim
    • vim8.2をアップグレードする
      • sudo add-apt-repository ppa:jonathonf/vim
      • sudo apt-get アップデート
      • sudo apt-get install -y vim vim-gtk3 vim-gui-common
    • 注: master ブランチを使用してください。そうしないと、package.json が原因で糸のビルドが失敗します。
    • coc.nvim (マスター) をインストールします
      • カール -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
      • sudo apt-get install -y nodejs
      • sudo npm install -g 糸
      • 糸のインストール
      • 糸の構築
      • 注文の実行
        • C/C++ の補完: CocInstall coc-clangd
          • sudo apt install clang-10 install C/C++ 言語サーバー
        • Python の補完: CocInstall coc-pyright
        • Java の完了: CocInstall coc-java
      • 実行: CocInstall coc-snippets インストール コード スニペット
        • スニペットのコレクション、honza/vim-snippets
      • 既存の非 LSP プラグイン
        • coc-emmet は、emmet オートコンプリートのサポートを提供します。
        • coc-highlight は、現在の単語と色の強調表示のサポートを提供します。
        • coc-lists は共通リストのサポートを提供します。
        • coc-pairs は自動ペアリングのサポートを提供します。
        • coc-snippets は、コード ブロック ソリューションを提供します。
        • coc-yank は、ヤンクの強調表示と履歴リストを提供します。
        • coc-git は、git チャンク、ステータス、リストなどのサポートを提供します。

住所

  • https://github.com/tianzong2019/myvimrc
  • https://gitee.com/tianzong2019/myvimrc

カットzsh

  • 仮想マシンで使用するプロセスでフリーズが発生します。
  • sudo apt install -y zsh
  • sh -c “$(curl -fsSL https://raw.fastgit.org/robbyrussell/oh-my-zsh/master/tools/install.sh)”
  • git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
  • 設定、~/.zshrc
    • plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
    • テーマを切り替える
      • ZSH_THEME=「イーストウッド」
      • ZSH_THEME=「ガロア」

付録

A.1 i3wm でよく使用されるショートカット キー

i3wm 構成ファイルへのパス: $HOME/.config/i3/config

  • Windows キーを mod キーとして設定します。i3wm では、デフォルトの Mod1 は Alt で、Mod4 は Windows キーです。Windows キーを mod キーにしたい場合は、設定ファイルの前に次の文を追加できます: set $mod Mod4。

  • Ubuntu に付属のファイル マネージャー コマンドは次のとおりです: nautilus; このコマンドを使用して直接ファイルを開くと、デスクトップで開かれるため、使いにくく不便です。デスクトップなしで開くコマンドは次のとおりです: nautilus - -いいえ- デスクトップ

  • ホットキー 説明
    $mod + D dメニューを起動します。これは、開くソフトウェアの名前を入力できるコマンド入力ボックスです。
    $mod + Enter 新しいターミナルを作成する
    $mod + F ウィンドウ全画面表示
    $mode + NUM ワークスペース NUM にジャンプします。i3 には 10 個のワークスペースがあり、1 ~ 9,0 に対応します。
    $mod + H 次回新しいウィンドウが作成されるときに、ウィンドウを水平に分割します
    $mod + V 次回新しいウィンドウが作成されるときに、ウィンドウを垂直に分割します
    $mod + S ウィンドウを積み上げレイアウトで表示する
    $mod + W ウィンドウをタブ付きレイアウトで表示する
    $mod + E ウィンドウをデフォルトのレイアウト (タイル型レイアウト) で表示します。
    $mod + Shift + Q 現在のウィンドウを閉じる
    $mod + Shift + E i3をやめる
    $mod + Shift + C その場で i3config をリロードします。再起動は必要ありません
    $mod + Shift + R i3を再起動しました(プロセスを終了せずにi3configも再ロードしました)
    $mod + J フォーカスを左のウィンドウに移動するか、矢印キーを使用して上下左右に移動します
    $mod + K フォーカスダウンウィンドウ
    $mod + L フォーカスアップウィンドウ
    $mod + ; フォーカスを右のウィンドウに移動します
    $mod + Shift + J 窓左
    $mod + Shift + K 窓を下げて
    $mod + Shift + L 窓を上に向けて
    $mod + Shift + : 窓右
    $MOD + R ウィンドウが複数ある場合はウィンドウサイズを調整する
    $MOD + T タブバーのある新しいウィンドウ
    $MOD + Y 枠線付きの新しいウィンドウ
    $MOD + U タブバーや境界線のない新しいウィンドウを作成する
    ウィンドウサイズ ウィンドウの境界線をマウスでドラッグしてウィンドウのサイズを変更できます

A.2 Pythonの優先度を調整する

Pythonの優先度を調整する ubuntu16.04では、Python3.5とPython3.6が同時に存在するため、Pythonバージョン3.6の優先度が高くなるようにする 以下の操作が可能です

  • インストール
    • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
    • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
  • 调整
    • sudo update-alternatives --config python3

A.3 多版本切换

$ update-alternatives --help
用法:update-alternatives [<选项> ...] <命令>

命令:
  --install <链接> <名称> <路径> <优先级>
    [--slave <链接> <名称> <路径>] ...
                           在系统中加入一组候选项。
  --remove <名称> <路径><名称> 替换组中去除 <路径> 项。
  --remove-all <名称>      从替换系统中删除 <名称> 替换组。
  --auto <名称><名称> 的主链接切换到自动模式。
  --display <名称>         显示关于 <名称> 替换组的信息。
  --query <名称>           机器可读版的 --display <名称>.
  --list <名称>            列出 <名称> 替换组中所有的可用候选项。
  --get-selections         列出主要候选项名称以及它们的状态。
  --set-selections         从标准输入中读入候选项的状态。
  --config <名称>          列出 <名称> 替换组中的可选项,并就使用其中哪一个,征询用户的意见。
  --set <名称> <路径><路径> 设置为 <名称> 的候选项。
  --all                    对所有可选项一一调用 --config 命令。

<链接> 是指向 /etc/alternatives/<名称> 的符号链接。(如 /usr/bin/pager)
<名称> 是该链接替换组的主控名。(如 pager)
<路径> 是候选项目标文件的位置。(如 /usr/bin/less)
<优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高。
..........

实例

$ update-alternatives --display python 
python - 手动模式
link best version is /usr/bin/python3.5
链接目前指向 /usr/bin/python2.7
link python is /usr/bin/python
/usr/bin/python2.7 - 优先级 1
/usr/bin/python3.5 - 优先级 2

$ update-alternatives --config python    
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。
  选择       路径              优先级  状态
------------------------------------------------------------
  0            /usr/bin/python3.5   2         自动模式
* 1            /usr/bin/python2.7   1         手动模式
  2            /usr/bin/python3.5   2         手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:

# 添加 python link
$ update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
# 第一个参数: --install 表示向update-alternatives注册服务名。
# 第二个参数: 注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
# 第三个参数: 服务名,以后管理时以它为关联依据。
# 第四个参数: 被管理的命令绝对路径。
# 第五个参数: 优先级,数字越大优先级越高。

$ update-alternatives –remove python /usr/bin/python2.7

A.4 VirtualBox UUID修改

  • cd /d C:\Program Files\Oracle\VirtualBox
  • VBoxManage.exe internalcommands sethduuid “D:\Program Files\zVirtualMachine\ubuntu.server_1804\ubuntu.server_1804.vdi”
    • UUID changed to: 5118f355-b6dd-47ea-834f-a2707493675c

A.5 vbox压缩磁盘占用空间

虚拟机:Ubuntu

  • 虚拟机中执行
    • sudo dd if=/dev/zero of=/empty #时间有点久
    • sudo rm -f /empty
    • 关执行完成后,关闭虚拟机
  • 宿主机
    • cmd进入virtualbox安装目录
    • VBoxManage.exe modifyhd “D:\Program Files\zVirtualMachine\ubuntu.server_1804\ubuntu.server_1804.vdi” --compact #时间有点久
      • 双引号中为虚拟系统磁盘文件全路径

A.6 anaconda on win10x64

  • 1 添加清华源
    • 打开,Anaconda Prompt (anaconda),依次如下
    • conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    • conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
    • conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
    • 设置搜索时显示通道地址
    • conda config --set show_channel_urls yes
  • 2 安装zmq
    • 打开,Anaconda Prompt (anaconda)
    • conda install -c anaconda zeromq
  • 3 安装opencv
    • 下载whl文件,https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
    • 打开,Anaconda Prompt (anaconda)
    • pip install opencv_python-4.5.5-cp39-cp39-win_amd64.whl
  • 4 安装pyinstaller
    • 打开,Anaconda Prompt (anaconda),依次安装如下
    • pip install wheel pywin32(一般默认会安装)
    • pip install --upgrade --ignore-installed setuptools
    • pip install pyinstaller
  • 5 安装Pyqt
    • 打开,Anaconda Prompt (anaconda),依次安装如下
    • pip install sip (一般默认会安装)
    • python -m pip install PyQt5
    • pip install PyQt5-tools
  • 6 pycharm配置
    • 配置Python解释器
      • xxx\anaconda\python.exe
    • 配置QT-Designer
      • 选中 Tools -> external tools,添加
        • Name:QtDesigner
        • Group:Qt
        • Programs: 你的Designer路径
          • xxx\Anconda3\Lib\site-packages\qt5_applications\Qt\bin
        • Working directory:$ProjectFileDir$
    • 配置PYUIC
      • 选中 Tools -> external tools,添加
        • Name:Pyuic
        • Group:Qt
        • Program: 你的python路径
          • xxx\anaconda\python.exe
        • Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
        • Working directory:$FileDir$

A.7 虚拟网桥

使用qemu时有时候需要启用虚拟网桥,配置脚本如下,重启失效

#!/bin/bash
#
# sudo apt install -y uml-utilities bridge-utils
#    bridge-utils   虚拟网桥工具
#    uml-utilities  UML(User-mode linux)工具
#
# 要桥接的宿主机网卡:enp0s3
netcard=enp0s3

if [[ $1 = "on" ]]; then
	#先关闭eth0接口
	sudo ifconfig ${netcard} down
	#创建虚拟网桥
	sudo brctl addbr br0
	#在br0中添加一个接口${netcard}
	sudo brctl addif br0 ${netcard}
	#只有一个网桥,所以关闭生成树协议
	sudo brctl stp br0 off
	#设置br0的转发延迟
	sudo brctl setfd br0 1
	#设置br0的hello时间
	sudo brctl sethello br0 1
	#创建一个tap0接口,只允许当前用户访问
	sudo tunctl -t tap0 -u `whoami`
	#在虚拟网桥中增加一个tap0接口
	sudo brctl addif br0 tap0
	#打开br0接口
	sudo ifconfig br0 0.0.0.0 promisc up
	#打开${netcard}接口
	sudo ifconfig ${netcard} 0.0.0.0 promisc up
	#打开tap0接口
	sudo ifconfig tap0 0.0.0.0 promisc up
	#从dhcp服务器获得br0的IP地址
	sudo dhclient br0
	#没有dhcp时,也可配置静态IP并路由
	#  ifconfig br0 192.168.0.133 netmask 255.255.255.0
	#  route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.254
	#查看虚拟网桥列表
	#sudo brctl show br0
	#查看br0的各接口信息
	#sudo brctl showstp br0
	#ifconfig -a
else
	#从虚拟网桥中删除tap0
	sudo brctl delif br0 tap0
	#删除tap0接口
	sudo tunctl -d tap0
	#从虚拟网桥中删除${netcard}
	sudo brctl delif br0 ${netcard}
	#关闭br0
	sudo ifconfig br0 down
	#删除br0
	sudo brctl delbr br0
	#开启${netcard}
	sudo ifconfig ${netcard} up
	#检测是否自动给${netcard}分配IP,若没有则自动获取
	sudo dhclient -v ${netcard}
fi

–end

おすすめ

転載: blog.csdn.net/tianzong2019/article/details/122971583