1 <!-- WSUG Chapter Customizing -->
4 <chapter id="ChapterCustomize">
5 <title>Customizing Wireshark</title>
7 <section id="ChCustIntroduction"><title>Introduction</title>
9 Wireshark's default behaviour will usually suit your needs pretty well.
10 However, as you become more familiar with Wireshark, it can be customized
11 in various ways to suit your needs even better. In this chapter we explore:
15 How to start Wireshark with command line parameters
20 How to colorize the packet list
25 How to control protocol dissection
30 How to use the various preference settings
37 <section id="ChCustCommandLine"><title>Start Wireshark from the command line</title>
39 You can start <application>Wireshark</application> from the command
40 line, but it can also be started from most Window managers
41 as well. In this section we will look at starting it from the command
45 <application>Wireshark</application> supports a large number of
46 command line parameters. To see what they are, simply enter the
47 command <command>wireshark -h</command> and the help information
48 shown in <xref linkend="ChCustEx1"/> (or something similar) should be
50 <example id="ChCustEx1">
51 <title>Help information available from Wireshark</title>
53 Wireshark 1.9.0 (SVN Rev 47047 from /trunk)
54 Interactively dump and analyze network traffic.
55 See http://www.wireshark.org for more information.
57 Copyright 1998-2013 Gerald Combs <gerald@wireshark.org> and contributors.
58 This is free software; see the source for copying conditions. There is NO
59 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
61 Usage: wireshark [options] ... [ <infile> ]
64 -i <interface> name or idx of interface (def: first non-loopback)
65 -f <capture filter> packet filter in libpcap filter syntax
66 -s <snaplen> packet snapshot length (def: 65535)
67 -p don't capture in promiscuous mode
68 -k start capturing immediately (def: do nothing)
69 -S update packet display when new packets are captured
70 -l turn on automatic scrolling while -S is in use
71 -I capture in monitor mode, if available
72 -B <buffer size> size of kernel buffer (def: 1MB)
73 -y <link type> link layer type (def: first appropriate)
74 -D print list of interfaces and exit
75 -L print list of link-layer types of iface and exit
77 Capture stop conditions:
78 -c <packet count> stop after n packets (def: infinite)
79 -a <autostop cond.> ... duration:NUM - stop after NUM seconds
80 filesize:NUM - stop this file after NUM KB
81 files:NUM - stop after NUM files
83 -b <ringbuffer opt.> ... duration:NUM - switch to next file after NUM secs
84 filesize:NUM - switch to next file after NUM KB
85 files:NUM - ringbuffer: replace after NUM files
87 -r <infile> set the filename to read from (no pipes or stdin!)
90 -R <read filter> packet filter in Wireshark display filter syntax
91 -n disable all name resolutions (def: all enabled)
92 -N <name resolve flags> enable specific name resolution(s): "mntC"
95 -C <config profile> start with specified configuration profile
96 -d <display filter> start with the given display filter
97 -g <packet number> go to specified packet number after "-r"
98 -J <jump filter> jump to the first packet matching the (display)
100 -j search backwards for a matching packet after "-J"
101 -m <font> set the font name used for most text
102 -t ad|a|r|d|dd|e output format of time stamps (def: r: rel. to first)
103 -u s|hms output format of seconds (def: s: seconds)
104 -X <key>:<value> eXtension options, see man page for details
105 -z <statistics> show various statistics, see man page for details
108 -w <outfile|-> set the output filename (or '-' for stdout)
111 -h display this help and exit
112 -v display version info and exit
113 -P <key>:<path> persconf:path - personal configuration files
114 persdata:path - personal data files
115 -o <name>:<value> ... override preference or recent setting
116 -K <keytab> keytab file to use for kerberos decryption
117 --display=DISPLAY X display to use
122 We will examine each of the command line options in turn.
125 The first thing to notice is that issuing the command
126 <command>wireshark</command> by itself will bring up
127 <application>Wireshark</application>.
128 However, you can include as many of the command line parameters as
129 you like. Their meanings are as follows ( in alphabetical order ):
130 XXX - is the alphabetical order a good choice? Maybe better task based?
132 <varlistentry><term><command>-a <capture autostop condition></command></term>
135 Specify a criterion that specifies when Wireshark is to stop writing
136 to a capture file. The criterion is of the form test:value, where test
139 <varlistentry><term><command>duration</command>:value</term>
141 Stop writing to a capture file after value of seconds have elapsed.
144 <varlistentry><term><command>filesize</command>:value</term>
146 Stop writing to a capture file after it reaches a size of value
147 kilobytes (where a kilobyte is 1000 bytes, not 1024 bytes). If
148 this option is used together with the -b option, Wireshark will
149 stop writing to the current capture file and switch to the next
150 one if filesize is reached.
153 <varlistentry><term><command>files</command>:value</term>
155 Stop writing to capture files after value number of files were
163 <varlistentry><term><command>-b <capture ring buffer option></command></term>
166 If a maximum capture file size was specified, this option causes Wireshark to run
167 in "ring buffer" mode, with the specified number of files. In "ring
168 buffer" mode, Wireshark will write to several capture files. Their
169 name is based on the number of the file and on the creation date and
173 When the first capture file fills up Wireshark will switch to writing
174 to the next file, and so on. With the <command>files</command> option it's
175 also possible to form a "ring buffer." This will fill up new files until the
176 number of files specified, at which point the data in the first file will be
177 discarded so a new file can be written.
180 If the optional <command>duration</command> is specified, Wireshark will also
181 switch to the next file when the specified number of seconds has elapsed even
182 if the current file is not completely fills up.
186 <varlistentry><term><command>duration</command>:value</term>
188 Switch to the next file after value seconds have elapsed, even
189 if the current file is not completely filled up.
192 <varlistentry><term><command>filesize</command>:value</term>
194 Switch to the next file after it reaches a size of value kilobytes
195 (where a kilobyte is 1000 bytes, not 1024 bytes).
198 <varlistentry><term><command>files</command>:value</term>
200 Begin again with the first file after value number of files were
201 written (form a ring buffer).
208 <varlistentry><term><command>-B <capture buffer size (Win32 only)></command></term>
211 Win32 only: set capture buffer size (in MB, default is 1MB). This
212 is used by the capture driver to buffer packet data until that
213 data can be written to disk. If you encounter packet drops while
214 capturing, try to increase this size.
218 <varlistentry><term><command>-c <capture packet count></command></term>
221 This option specifies the maximum number of packets to capture
222 when capturing live data. It would be used in conjunction
223 with the <command>-k</command> option.
227 <varlistentry><term><command>-D</command></term>
230 Print a list of the interfaces on which Wireshark can capture, and
231 exit. For each network interface, a number and an
232 interface name, possibly followed by a text description of the
233 interface, is printed. The interface name or the number can be supplied
234 to the <command>-i</command> flag to specify an interface on which to capture.
237 This can be useful on systems that don't have a command to list them
238 (e.g., Windows systems, or UNIX systems lacking <command>ifconfig -a</command>);
239 the number can be useful on Windows 2000 and later systems, where the
240 interface name is a somewhat complex string.
243 Note that "can capture" means that Wireshark was able to open
244 that device to do a live capture; if, on your system, a program doing a
245 network capture must be run from an account with special privileges (for
246 example, as root), then, if Wireshark is run with the <command>-D</command> flag and
247 is not run from such an account, it will not list any interfaces.
251 <varlistentry><term><command>-f <capture filter></command></term>
254 This option sets the initial capture filter expression to
255 be used when capturing packets.
259 <varlistentry><term><command>-g <packet number></command></term>
262 After reading in a capture file using the -r flag, go to the given
267 <varlistentry><term><command>-h</command></term>
270 The <command>-h</command> option requests Wireshark to print
271 its version and usage instructions (as shown above) and exit.
275 <varlistentry><term><command>-i <capture interface></command></term>
278 Set the name of the network interface or pipe to use for live packet
282 Network interface names should match one of the names listed in
283 <command>wireshark -D</command> (described above); a number, as reported by
284 <command>wireshark -D</command>, can also be used. If you're using UNIX, <command>netstat
285 -i</command> or <command>ifconfig -a</command> might also work to list interface names,
286 although not all versions of UNIX support the <command>-a</command> flag to <command>ifconfig</command>.
289 If no interface is specified, Wireshark searches the list of
290 interfaces, choosing the first non-loopback interface if there are any
291 non-loopback interfaces, and choosing the first loopback interface if
292 there are no non-loopback interfaces; if there are no interfaces,
293 Wireshark reports an error and doesn't start the capture.
296 Pipe names should be either the name of a FIFO (named pipe) or ``-'' to
297 read data from the standard input. Data read from pipes must be in
298 standard libpcap format.
302 <varlistentry><term><command>-J <jump filter></command></term>
305 After reading in a capture file using the <command>-r</command>
306 flag, jump to the first packet which matches the filter expression.
307 The filter expression is in display filter format. If an exact match
308 cannot be found the first packet afterwards is selected.
312 <varlistentry><term><command>-j</command></term>
315 Use this option after the <command>-J</command> option to search
316 backwards for a first packet to go to.
320 <varlistentry><term><command>-k</command></term>
323 The <command>-k</command> option specifies that Wireshark
324 should start capturing packets immediately. This option
325 requires the use of the <command>-i</command> parameter to
326 specify the interface that packet capture will occur from.
330 <varlistentry><term><command>-l</command></term>
333 This option turns on automatic scrolling if the packet
334 list pane is being updated automatically as packets arrive
335 during a capture ( as specified by the <command>-S</command>
340 <varlistentry><term><command>-L</command></term>
343 List the data link types supported by the interface and exit.
347 <varlistentry><term><command>-m <font></command></term>
350 This option sets the name of the font used for most text
351 displayed by Wireshark. XXX - add an example!
355 <varlistentry><term><command>-n</command></term>
358 Disable network object name resolution (such as hostname, TCP and UDP
363 <varlistentry><term><command>-N <name resolving flags></command></term>
366 Turns on name resolving for particular types of addresses
367 and port numbers; the argument is a string that may contain
368 the letters <command>m</command> to enable MAC address
369 resolution, <command>n</command> to enable network address
370 resolution, and <command>t</command> to enable transport-layer
371 port number resolution. This overrides <command>-n</command>
372 if both <command>-N</command> and <command>-n</command> are
373 present. The letter C enables concurrent (asynchronous) DNS lookups.
378 <term><command>-o <preference/recent settings></command></term>
381 Sets a preference or recent value, overriding the default value and
382 any value read from a preference/recent file. The argument to the
383 flag is a string of the form prefname:value, where prefname
384 is the name of the preference (which is the same name that
385 would appear in the preference/recent file), and value is the value
386 to which it should be set. Multiple instances of
387 <command>-o <preference settings> </command> can be
388 given on a single command line.
390 <para>An example of setting a single preference would be: </para>
393 wireshark -o mgcp.display_dissect_tree:TRUE
397 An example of setting multiple preferences would be:
401 wireshark -o mgcp.display_dissect_tree:TRUE -o mgcp.udp.callagent_port:2627
404 <tip><title>Tip!</title>
406 You can get a list of all available preference strings from the
407 preferences file, see <xref linkend="AppFiles"/>.
410 <para>User access tables can be overridden using "uat," followed by
411 the UAT file name and a valid record for the file: </para>
414 wireshark -o "uat:user_dlts:\"User 0 (DLT=147)\",\"http\",\"0\",\"\",\"0\",\"\""
418 The example above would dissect packets with a libpcap data
419 link type 147 as HTTP, just as if you had configured it in the
420 DLT_USER protocol preferences.
424 <varlistentry><term><command>-p</command></term>
427 Don't put the interface into promiscuous mode. Note that
428 the interface might be in promiscuous mode for some other
429 reason; hence, -p cannot be used to ensure that the only
430 traffic that is captured is traffic sent to or from the
431 machine on which Wireshark is running, broadcast traffic, and
432 multicast traffic to addresses received by that machine.
436 <varlistentry><term><command>-P <path setting></command></term>
439 Special path settings usually detected automatically. This is used
440 for special cases, e.g. starting Wireshark from a known location on
444 The criterion is of the form key:path, where key is one of:
446 <varlistentry><term><command>persconf</command>:path</term>
448 path of personal configuration files, like the preferences files.
451 <varlistentry><term><command>persdata</command>:path</term>
453 path of personal data files, it's the folder initially opened.
454 After the initialization, the recent file will keep the folder
462 <varlistentry><term><command>-Q</command></term>
465 This option forces Wireshark to exit when capturing is
466 complete. It can be used with the <command>-c</command> option.
467 It must be used in conjunction with the
468 <command>-i</command> and <command>-w</command> options.
472 <varlistentry><term><command>-r <infile></command></term>
475 This option provides the name of a capture file for Wireshark
476 to read and display. This capture file can be in one of the
477 formats Wireshark understands.
481 <varlistentry><term><command>-R <read (display) filter></command></term>
484 This option specifies a display filter to be applied when
485 reading packets from a capture file. The syntax of this
486 filter is that of the display filters discussed in
487 <xref linkend="ChWorkDisplayFilterSection"/>. Packets not
488 matching the filter are discarded.
492 <varlistentry><term><command>-s <capture snaplen></command></term>
495 This option specifies the snapshot length to use when
496 capturing packets. Wireshark will only capture
497 <command><snaplen></command> bytes of data for each packet.
501 <varlistentry><term><command>-S</command></term>
504 This option specifies that Wireshark will display packets as
505 it captures them. This is done by capturing in one process
506 and displaying them in a separate process. This is the same
507 as "Update list of packets in real time" in the Capture Options
513 <term><command>-t <time stamp format></command></term>
516 This option sets the format of packet timestamps that are
517 displayed in the packet list window. The format can be one of:
521 <command>r</command> relative, which specifies timestamps are
522 displayed relative to the first packet captured.
527 <command>a</command> absolute, which specifies that actual times
528 be displayed for all packets.
533 <command>ad</command> absolute with date, which specifies that
534 actual dates and times be displayed for all packets.
539 <command>d</command> delta, which specifies that timestamps
540 are relative to the previous packet.
545 <command>e</command> epoch, which specifies that timestamps
546 are seconds since epoch (Jan 1, 1970 00:00:00)
553 <varlistentry><term><command>-v</command></term>
556 The <command>-v</command> option requests
557 Wireshark to print out its version information and exit.
561 <varlistentry><term><command>-w <savefile></command></term>
564 This option sets the name of the <command>savefile</command>
565 to be used when saving a capture file.
569 <varlistentry><term><command>-y <capture link type></command></term>
572 If a capture is started from the command line with -k, set the data
573 link type to use while capturing packets. The values reported by -L
574 are the values that can be used.
578 <varlistentry><term><command>-X <eXtension option></command></term>
581 Specify an option to be passed to a TShark module. The eXtension
582 option is in the form extension_key:value, where extension_key can
586 <command>lua_script</command>:lua_script_filename; Tells Wireshark to load the given script in addition to the default Lua scripts.
590 <varlistentry><term><command>-z <statistics-string></command></term>
593 Get Wireshark to collect various types of statistics and display the
594 result in a window that updates in semi-real time.
595 XXX - add more details here!
603 <section id="ChCustColorizationSection"><title>Packet colorization</title>
605 A very useful mechanism available in Wireshark is packet colorization.
606 You can set-up Wireshark so that it will colorize packets according to a
607 filter. This allows you to emphasize the packets you are (usually)
613 You will find a lot of Coloring Rule examples at the <command>Wireshark
614 Wiki Coloring Rules page</command> at <ulink
615 url="&WiresharkWikiColoringRulesPage;">&WiresharkWikiColoringRulesPage;</ulink>.
619 There are two types of coloring rules in Wireshark; temporary ones that are
620 only used until you quit the program, and permanent ones that will be saved to
621 a preference file so that they are available on a next session.
624 Temporary coloring rules can be added by selecting a packet and pressing
625 the <ctrl> key together with one of the number keys. This will
626 create a coloring rule based on the currently selected conversation. It will
627 try to create a conversation filter based on TCP first, then UDP, then IP
628 and at last Ethernet. Temporary filters can also be created by selecting
629 the "Colorize with Filter > Color X" menu items when rightclicking in the
634 To permanently colorize packets, select the <command>Coloring Rules...</command> menu item from
635 the <command>View</command> menu; Wireshark will pop up the "Coloring Rules"
636 dialog box as shown in <xref linkend="ChCustColoringRulesDialog"/>.
638 <figure id="ChCustColoringRulesDialog">
639 <title>The "Coloring Rules" dialog box</title>
640 <graphic entityref="WiresharkColoringRulesDialog" format="PNG"/>
643 Once the Coloring Rules dialog box is up, there are a number
644 of buttons you can use, depending on whether or not you have any
645 color filters installed already.
647 <note><title>Note!</title>
649 You will need to carefully select the order the coloring rules are listed
650 as they are applied in order from top to bottom.
651 So, more specific rules need to be listed before more general rules.
652 For example, if you have a color rule for UDP before the one for DNS,
653 the color rule for DNS will never be applied (as DNS uses UDP, so the
654 UDP rule will match first).
658 If this is the first time you have used Coloring Rules, click on the New
659 button which will bring up the Edit color filter dialog box as shown in
660 <xref linkend="ChCustEditColorDialog"/>.
662 <figure id="ChCustEditColorDialog">
663 <title>The "Edit Color Filter" dialog box</title>
664 <graphic entityref="WiresharkEditColorDialog" format="PNG"/>
667 In the Edit Color dialog box, simply enter a name for the color filter,
668 and enter a filter string in the Filter text field.
669 <xref linkend="ChCustEditColorDialog"/> shows the values
670 <command>arp</command> and <command>arp</command> which means that
671 the name of the color filter is <command>arp</command> and the filter
672 will select protocols of type <command>arp</command>. Once you have
673 entered these values, you can choose a foreground and background
674 color for packets that match the filter expression. Click on
675 <command>Foreground color...</command> or
676 <command>Background color...</command> to achieve this and
677 Wireshark will pop up the Choose foreground/background color for
678 protocol dialog box as shown in
679 <xref linkend="ChCustChooseColorDialog"/>.
681 <figure id="ChCustChooseColorDialog">
682 <title>The "Choose color" dialog box</title>
683 <graphic entityref="WiresharkChooseColorDialog" format="PNG"/>
686 Select the color you desire for the selected packets and click on OK.
691 You must select a color in the colorbar next to the colorwheel to
692 load values into the RGB values. Alternatively, you can set the
693 values to select the color you want.
697 <xref linkend="ChCustColorFilterMany"/> shows an example of several color
698 filters being used in Wireshark. You may not like the color choices,
699 however, feel free to choose your own.
702 If you are uncertain which coloring rule actually took place for a
703 specific packet, have a look at the [Coloring Rule Name: ...] and
704 [Coloring Rule String: ...] fields.
706 <figure id="ChCustColorFilterMany">
707 <title>Using color filters with Wireshark</title>
708 <graphic entityref="WiresharkColoringFields" format="PNG"/>
712 <section id="ChCustProtocolDissectionSection">
713 <title>Control Protocol dissection</title>
715 The user can control how protocols are dissected.
718 Each protocol has its own dissector, so dissecting a complete packet will
719 typically involve several dissectors. As Wireshark tries to find the
720 right dissector for each packet (using static "routes" and heuristics
721 "guessing"), it might choose the wrong dissector in your specific
722 case. For example, Wireshark won't know if you use a common protocol
723 on an uncommon TCP port, e.g. using HTTP on TCP port 800 instead of
724 the standard port 80.
727 There are two ways to control the relations between protocol
728 dissectors: disable a protocol dissector completely or temporarily
729 divert the way Wireshark calls the dissectors.
731 <section id="ChAdvEnabledProtocols"><title>The "Enabled Protocols" dialog
734 The Enabled Protocols dialog box lets you enable or
735 disable specific protocols; all protocols are enabled by default.
736 When a protocol is disabled, Wireshark stops processing a packet
737 whenever that protocol is encountered.
739 <note><title>Note!</title>
741 Disabling a protocol will prevent information about higher-layer
742 protocols from being displayed. For example,
743 suppose you disabled the IP protocol and selected
744 a packet containing Ethernet, IP, TCP, and HTTP
745 information. The Ethernet information would be
746 displayed, but the IP, TCP and HTTP information
747 would not - disabling IP would prevent it and
748 the other protocols from being displayed.
752 To enable/disable protocols select the <command>Enabled Protocols...</command>
753 item from the <command>Analyze</command> menu; Wireshark will pop up the "Enabled Protocols"
754 dialog box as shown in <xref linkend="ChAdvEnabledProtocolsFig"/>.
756 <figure id="ChAdvEnabledProtocolsFig">
757 <title>The "Enabled Protocols" dialog box</title>
758 <graphic entityref="WiresharkEnabledProtocols" format="PNG"/>
761 To disable or enable a protocol, simply click on it using the
762 mouse or press the space bar when the protocol is highlighted.
763 Note that typing the first few letters
764 of the protocol name when the Enabled Protocols dialog box is active
765 will temporarily open a search text box and
766 automatically select the first matching protocol name (if it exists).
768 <warning><title>Warning!</title>
770 You have to use the Save button to save your settings. The OK or Apply
771 buttons will not save your changes permanently, so they will be lost
772 when Wireshark is closed.
776 You can choose from the following actions:
780 <command>Enable All</command>: Enable all protocols in the list.
785 <command>Disable All</command>: Disable all protocols in the list.
790 <command>Invert</command>: Toggle the state of all protocols in the
796 <command>OK</command>: Apply the changes and close the dialog box.
801 <command>Apply</command>: Apply the changes and keep the dialog box
807 <command>Save</command>: Save the settings to the disabled_protos, see
808 <xref linkend="AppFiles"/> for details.
813 <command>Cancel</command>: Cancel the changes and close the dialog box.
820 <section id="ChAdvDecodeAs"><title>User Specified Decodes</title>
822 The "Decode As" functionality let you temporarily divert specific
823 protocol dissections. This might be useful for example, if you do some
824 uncommon experiments on your network.
827 Decode As is accessed by selecting the <command>Decode As...</command> item from
828 the <command>Analyze</command> menu; Wireshark will pop up the "Decode As"
829 dialog box as shown in <xref linkend="ChAdvDecodeAsFig"/>.
832 <figure id="ChAdvDecodeAsFig">
833 <title>The "Decode As" dialog box</title>
834 <graphic scale="100" entityref="WiresharkDecodeAs" format="PNG"/>
836 The content of this dialog box depends on the selected packet when it
838 <warning><title>Warning!</title>
840 These settings will be lost if you quit Wireshark or change profile,
841 unless you save the entries in the <command>Show User Specified Decodes...</command>
842 windows (<xref linkend="ChAdvDecodeAsShow"/>).
848 <command>Decode</command>: Decode packets the selected way.
853 <command>Do not decode</command>: Do not decode packets the selected
859 <command>Link/Network/Transport</command>: Specify the network layer
860 at which "Decode As" should take place. Which of these pages are
861 available depends on the content of the selected packet when this
862 dialog box is opened.
867 <command>Show Current</command>: Open a dialog box showing the
868 current list of user specified decodes.
873 <command>OK</command>: Apply the currently selected decode and close
879 <command>Apply</command>: Apply the currently selected decode and keep
885 <command>Cancel</command>: Cancel the changes and close the dialog box.
892 <section id="ChAdvDecodeAsShow"><title>Show User Specified Decodes</title>
894 This dialog box shows the currently active user specified decodes. These entries
895 can be saved into current profile for later session.
896 <figure id="ChAdvDecodeAsShowFig">
897 <title>The "Decode As: Show" dialog box</title>
898 <graphic entityref="WiresharkDecodeAsShow" format="PNG"/>
903 <command>OK</command>: Close this dialog box.
908 <command>Save</command>: Save the entries in the table into current profile.
913 <command>Clear</command>: Removes all user specified decodes without updating the profile.
921 <section id="ChCustPreferencesSection"><title>Preferences</title>
923 There are a number of preferences you can set. Simply
924 select the <command>Preferences...</command> menu item from
925 the <command>Edit</command> menu; and Wireshark
926 will pop up the Preferences dialog box as shown in
927 <xref linkend="ChCustGUIPrefPage"/>, with the "User Interface" page as
928 default. On the left side is a tree where you can select the page to be
930 <note><title>Note!</title>
932 Preference settings are added frequently. For a recent explanation of
933 the preference pages and their settings have a look at the
934 <command>Wireshark Wiki Preferences page</command> at <ulink
935 url="&WiresharkWikiPreferencesPage;">&WiresharkWikiPreferencesPage;</ulink>.
939 <title>Warning!</title>
941 The OK or Apply button will not save the preference settings,
942 you'll have to save the settings by clicking the Save button.
948 The <command>OK</command> button will apply the preferences
949 settings and close the dialog.
954 The <command>Apply</command> button will apply the preferences
955 settings and keep the dialog open.
960 The <command>Save</command> button will apply the preferences
961 settings, save the settings on the hard disk and keep the dialog open.
966 The <command>Cancel</command> button will restore all preferences
967 settings to the last saved state.
972 <figure id="ChCustGUIPrefPage">
973 <title>The preferences dialog box</title>
974 <graphic entityref="WiresharkGUIPreferences" format="PNG"/>
977 <section id="ChCustInterfaceOptionsSection"><title>Interface Options</title>
979 In the Capture preferences it is possible to configure several options for the interfaces
980 available on your computer. Select the <command>Capture</command> pane and press the
981 Interfaces: <command>Edit</command> button. In this window it is possible to change the
982 default link-layer header type for the interface, add a comment or choose to hide a
983 interface from other parts of the program.
985 <figure id="ChCustInterfaceOptionsPage">
986 <title>The interface options dialog box</title>
987 <graphic entityref="WiresharkGUIInterfaceOptions" format="PNG"/>
989 <para>Each row contains options for each interface available on your computer.</para>
992 <para><command>Device</command>: the device name provided by the operating system.</para>
995 <para><command>Description</command>: provided by the operating system.</para>
998 <para><command>Default link-layer</command>: each interface may provide several
999 link-layer header types. The default link-layer chosen here is the one used when you
1000 first start Wireshark. It is also possible to change this value in
1001 <xref linkend="ChCapCaptureOptions"/> when you start a capture.
1002 For a detailed description, see <xref linkend="ChCapLinkLayerHeader"/>.</para>
1005 <para><command>Comment</command>: a user provided description of the interface.
1006 This comment will be used as a description instead of the operating system
1010 <para><command>Hide?</command>: enable this option to hide the interface from other
1011 parts of the program.</para>
1017 <section id="ChCustConfigProfilesSection"><title>Configuration Profiles</title>
1019 Configuration Profiles can be used to configure and use more than one set of preferences
1020 and configurations. Select the <command>Configuration Profiles...</command> menu item from
1021 the <command>Edit</command> menu, or simply press Shift-Ctrl-A; and Wireshark will pop up the
1022 Configuration Profiles dialog box as shown in <xref linkend="ChCustGUIConfigProfilesPage"/>.
1023 It is also possible to click in the "Profile" part of the statusbar to popup a menu with
1024 available Configuration Profiles (<xref linkend="ChUseWiresharkStatusbarProfile"/>).
1027 Configuration files stored in the Profiles:
1031 Preferences (preferences) (<xref linkend="ChCustPreferencesSection"/>)
1036 Capture Filters (cfilters) (<xref linkend="ChWorkDefineFilterSection"/>)
1041 Display Filters (dfilters) (<xref linkend="ChWorkDefineFilterSection"/>)
1046 Coloring Rules (colorfilters) (<xref linkend="ChCustColorizationSection"/>)
1051 Disabled Protocols (disabled_protos) (<xref linkend="ChAdvEnabledProtocols"/>)
1056 User Accessible Tables:
1060 Custom HTTP headers (custom_http_header_fields)
1065 Custom IMF headers (imf_header_fields)
1070 Custom LDAP AttributeValue types (custom_ldap_attribute_types)
1075 Display Filter Macros (dfilter_macros) (<xref linkend="ChDisplayFilterMacrosSection"/>)
1080 ESS Category Attributes (ess_category_attributes) (<xref linkend="ChEssCategoryAttributes"/>)
1085 GeoIP Database Paths (geoip_db_paths) (<xref linkend="ChGeoIPDbPaths"/>)
1090 K12 Protocols (k12_protos) (<xref linkend="ChK12ProtocolsSection"/>)
1095 Object Identifier Names and Associated Syntaxes (<xref linkend="ChObjectIdentifiers"/>)
1100 PRES Users Context List (pres_context_list) (<xref linkend="ChPresContextList"/>)
1105 SCCP Users Table (sccp_users) (<xref linkend="ChSccpUsers"/>)
1110 SNMP Enterprise Specific Trap Types (snmp_specific_traps) (<xref linkend="ChSNMPEnterpriseSpecificTrapTypes"/>)
1115 SNMP Users (snmp_users) (<xref linkend="ChSNMPUsersSection"/>)
1120 User DLTs Table (user_dlts) (<xref linkend="ChUserDLTsSection"/>)
1125 IKEv2 decryption table (ikev2_decryption_table) (<xref linkend="ChIKEv2DecryptionSection"/>)
1133 Changed dissector assignments (decode_as_entries), which can be set in <command>Decode As...</command>
1134 dialog box (<xref linkend="ChAdvDecodeAs"/>), and further saved in the <command>User Specified Decodes...</command>
1135 window (<xref linkend="ChAdvDecodeAsShow"/>).
1140 Some recent settings (recent), such as pane sizes in the Main window
1141 (<xref linkend="ChUseMainWindowSection"/>), column widths in the packet list
1142 (<xref linkend="ChUsePacketListPaneSection"/>), all selections in the "View" menu
1143 (<xref linkend="ChUseViewMenuSection"/>) and the last directory navigated to in the
1148 <note><title>Other configurations</title>
1150 All other configurations are stored in the personal configuration folder,
1151 and are common to all profiles.
1155 <figure id="ChCustGUIConfigProfilesPage">
1156 <title>The configuration profiles dialog box</title>
1157 <graphic entityref="WiresharkGUIConfigProfiles" format="PNG"/>
1161 <varlistentry><term><command>New</command></term>
1164 This button adds a new profile to the profiles list. The name of the
1165 created profile is "New profile" and can be changed in the Properties field.
1169 <varlistentry><term><command>Copy</command></term>
1172 This button adds a new profile to the profiles list, copying all configuration
1173 from the profile currently selected in the list. The name of the created
1174 profile is the same as the copied profile, with the text "(copy)" applied.
1175 The name can be changed in the Properties field.
1179 <varlistentry><term><command>Delete</command></term>
1182 This button deletes the selected profile, including all configuration
1183 files used in this profile. It is not possible to delete the "Default" profile.
1187 <varlistentry><term><command>Configuration Profiles</command></term>
1190 You can select a configuration profile from this list (which will fill
1191 in the profile name in the fields down at the bottom of the dialog box).
1195 <varlistentry><term><command>Profile name:</command></term>
1198 You can change the name of the currently selected profile here.
1200 <note><title>Used as a folder name</title>
1202 The profile name will be used as a folder name in the configured
1203 "Personal configurations" folder. If adding multiple profiles with the
1204 same name, only one profile will be created.
1207 <note><title>Illegal characters</title>
1209 On Windows the profile name cannot start or end with a period (.), and cannot contain
1210 any of the following characters: <command>\ / : * ? " < > |</command>
1213 On Unix the profile name cannot contain the '<command>/</command>' character.
1218 <varlistentry><term><command>OK</command></term>
1221 This button saves all changes, applies the selected profile and closes the dialog.
1225 <varlistentry><term><command>Apply</command></term>
1228 This button saves all changes, applies the selected profile and keeps the dialog open.
1232 <varlistentry><term><command>Cancel</command></term>
1235 Close this dialog. This will discard unsaved settings, new profiles will not be added
1236 and deleted profiles will not be deleted.
1240 <varlistentry><term><command>Help</command></term>
1243 Show this help page.
1250 <section id="ChUserTable"><title>User Table</title>
1252 The User Table editor is used for managing various tables in wireshark. Its main dialog works
1253 very similarly to that of <xref linkend="ChCustColorizationSection"/>.
1258 <section id="ChDisplayFilterMacrosSection"><title>Display Filter Macros</title>
1260 Display Filter Macros are a mechanism to create shortcuts for complex filters. For example defining a
1261 display filter macro named <command>tcp_conv</command> whose text is
1262 <command> ( (ip.src == $1 and ip.dst == $2 and tcp.srcport == $3 and tcp.dstport == $4) or
1263 (ip.src == $2 and ip.dst == $1 and tcp.srcport == $4 and tcp.dstport == $3) ) </command>
1264 would allow to use a display filter like <command>${tcp_conv:10.1.1.2;10.1.1.3;1200;1400}</command>
1265 instead of typing the whole filter.
1268 Display Filter Macros can be managed with a <xref linkend="ChUserTable"/> by selecting
1269 <command>Analyze → Display Filter Macros</command> from the menu.
1270 The User Table has the following fields
1273 <varlistentry><term><command>Name</command></term>
1276 The name of the macro.
1280 <varlistentry><term><command>Text</command></term>
1283 The replacement text for the macro it uses $1, $2, $3, ... as the input arguments.
1292 <section id="ChEssCategoryAttributes"><title>ESS Category Attributes</title>
1294 Wireshark uses this table to map ESS Security Category attributes to textual
1295 representations. The values to put in this table are usually found in a
1296 <ulink url="http://www.xmlspif.org/">XML SPIF</ulink>, which is used for defining
1300 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1303 <varlistentry><term><command>Tag Set</command></term>
1306 An Object Identifier representing the Category Tag Set.
1310 <varlistentry><term><command>Value</command></term>
1313 The value (Label And Cert Value) representing the Category.
1317 <varlistentry><term><command>Name</command></term>
1320 The textual representation for the value.
1327 <section id="ChGeoIPDbPaths"><title>GeoIP Database Paths</title>
1329 If your copy of Wireshark supports <ulink url="http://www.maxmind.com/">MaxMind's</ulink> GeoIP library, you can use their databases to match IP addresses to countries, cites, autonomous system numbers, ISPs, and other bits of information. Some databases are <ulink url="http://www.maxmind.com/download/geoip/database/">available at no cost</ulink>, while others require a licensing fee. See <ulink url="http://www.maxmind.com/app/ip-location">the MaxMind web site</ulink> for more information.
1332 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1335 <varlistentry><term><command>Database pathname</command></term>
1338 This specifies a directory containing GeoIP data files. Any files
1339 beginning with <filename>Geo</filename> and ending with
1340 <filename>.dat</filename> will be automatically loaded. A total of 8
1341 files can be loaded.
1344 The locations for your data files are up to you, but <filename class='directory'>/usr/share/GeoIP</filename> (Linux), <filename class='directory'>C:\GeoIP</filename> (Windows), <filename class='directory'>C:\Program Files\Wireshark\GeoIP</filename> (Windows) might be good choices.
1351 <section id="ChIKEv2DecryptionSection"><title>IKEv2 decryption table</title>
1353 Wireshark can decrypt Encrypted Payloads of IKEv2 (Internet Key Exchange version 2) packets if necessary information is provided.
1354 Note that you can decrypt only IKEv2 packets with this feature. If you want to decrypt IKEv1 packets or ESP packets,
1355 use Log Filename setting under ISAKMP protocol preference or settings under ESP protocol preference respectively.
1358 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1361 <varlistentry><term><command>Initiator's SPI</command></term>
1364 Initiator's SPI of the IKE_SA. This field takes hexadecimal string without "0x" prefix
1365 and the length must be 16 hex chars (represents 8 octets).
1369 <varlistentry><term><command>Responder's SPI</command></term>
1372 Responder's SPI of the IKE_SA. This field takes hexadecimal string without "0x" prefix
1373 and the length must be 16 hex chars (represents 8 octets).
1377 <varlistentry><term><command>SK_ei</command></term>
1380 Key used to encrypt/decrypt IKEv2 packets from initiator to responder.
1381 This field takes hexadecimal string without "0x" prefix and its length
1382 must meet the requirement of the encryption algorithm selected.
1386 <varlistentry><term><command>SK_er</command></term>
1389 Key used to encrypt/decrypt IKEv2 packets from responder to initiator.
1390 This field takes hexadecimal string without "0x" prefix and its length
1391 must meet the requirement of the encryption algorithm selected.
1395 <varlistentry><term><command>Encryption Algorithm</command></term>
1398 Encryption algorithm of the IKE_SA.
1402 <varlistentry><term><command>SK_ai</command></term>
1405 Key used to calculate Integrity Checksum Data for IKEv2 packets from responder to initiator.
1406 This field takes hexadecimal string without "0x" prefix and its length
1407 must meet the requirement of the integrity algorithm selected.
1411 <varlistentry><term><command>SK_ar</command></term>
1414 Key used to calculate Integrity Checksum Data for IKEv2 packets from initiator to responder.
1415 This field takes hexadecimal string without "0x" prefix and its length
1416 must meet the requirement of the integrity algorithm selected.
1420 <varlistentry><term><command>Integrity Algorithm</command></term>
1423 Integrity algorithm of the IKE_SA.
1431 <section id="ChObjectIdentifiers"><title>Object Identifiers</title>
1433 Many protocols that use ASN.1 use Object Identifiers (OIDs) to uniquely identify certain pieces of information. In many cases, they are used in an extension mechanism so that new object identifiers (and associated values) may be defined without needing to change the base standard.
1436 Whilst Wireshark has knowledge about many of the OIDs and the syntax of their associated values, the extensibility means that other values may be encountered.
1439 Wireshark uses this table to allow the user to define the name and syntax of Object Identifiers that Wireshark does not know about (for example, a privately defined X.400 extension). It also allows the user to override the name and syntax of Object Identifiers that Wireshark does know about (e.g. changing the name "id-at-countryName" to just "c").
1442 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1445 <varlistentry><term><command>OID</command></term>
1448 The string representation of the Object Identifier e.g. "2.5.4.6".
1452 <varlistentry><term><command>Name</command></term>
1455 The name that should be displayed by Wireshark when the Object Identifier is dissected e.g. ("c");
1459 <varlistentry><term><command>Syntax</command></term>
1462 The syntax of the value associated with the Object Identifier. This must be one of the syntaxes that Wireshark already knows about (e.g. "PrintableString").
1469 <section id="ChPresContextList"><title>PRES Users Context List</title>
1471 Wireshark uses this table to map a presentation context identifier to a given object identifier when the
1472 capture does not contain a PRES package with a presentation context definition list for the conversation.
1475 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1478 <varlistentry><term><command>Context Id</command></term>
1481 An Integer representing the presentation context identifier for which this association is valid.
1485 <varlistentry><term><command>Syntax Name OID</command></term>
1488 The object identifier representing the abstract syntax name, which defines the protocol that is
1489 carried over this association.
1497 <section id="ChSccpUsers"><title>SCCP users Table</title>
1499 Wireshark uses this table to map specific protocols to a certain DPC/SSN combination for SCCP.
1502 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1505 <varlistentry><term><command>Network Indicator</command></term>
1508 An Integer representing the network indicator for which this association is valid.
1513 <varlistentry><term><command>Called DPCs</command></term>
1516 An range of integers representing the dpcs for which this association is valid.
1521 <varlistentry><term><command>Called SSNs</command></term>
1524 An range of integers representing the ssns for which this association is valid.
1529 <varlistentry><term><command>User protocol</command></term>
1532 The protocol that is carried over this association
1542 <section id="ChSNMPSMIModules"><title>SMI (MIB and PIB) Modules</title>
1544 If your copy of Wireshark supports libSMI, you can specify a list of MIB
1545 and PIB modules here. The COPS and SNMP dissectors can use them to resolve
1549 <varlistentry><term><command>Module name</command></term>
1552 The name of the module, e.g. <database>IF-MIB</database>.
1560 <section id="ChSNMPSMIPaths"><title>SMI (MIB and PIB) Paths</title>
1562 If your copy of Wireshark supports libSMI, you can specify one or more
1563 paths to MIB and PIB modules here.
1566 <varlistentry><term><command>Directory name</command></term>
1569 A module directory, e.g. <filename
1570 class='directory'>/usr/local/snmp/mibs</filename>. Wireshark
1571 automatically uses the standard SMI path for your system, so you
1572 usually don't have to add anything here.
1580 <section id="ChSNMPEnterpriseSpecificTrapTypes"><title>SNMP Enterprise Specific Trap Types</title>
1582 Wireshark uses this table to map specific-trap values to user defined descriptions in a Trap PDU.
1583 The description is shown in the packet details specific-trap element.
1586 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1589 <varlistentry><term><command>Enterprise OID</command></term>
1592 The object identifier representing the object generating the trap.
1596 <varlistentry><term><command>Trap Id</command></term>
1599 An Integer representing the specific-trap code.
1603 <varlistentry><term><command>Description</command></term>
1606 The description to show in the packet details.
1613 <section id="ChSNMPUsersSection"><title>SNMP users Table</title>
1615 Wireshark uses this table to verify authentication and to decrypt encrypted SNMPv3 packets.
1618 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1621 <varlistentry><term><command>Engine ID</command></term>
1624 If given this entry will be used only for packets whose engine id is this.
1625 This field takes an hexadecimal string in the form 0102030405.
1629 <varlistentry><term><command>Username</command></term>
1632 This is the userName. When a single user has more than one password
1633 for different SNMP-engines the first entry to match both is taken, if you
1634 need a catch all engine-id (empty) that entry should be the last one.
1638 <varlistentry><term><command>Authentication model</command></term>
1641 Which auth model to use (either "MD5" or "SHA1").
1645 <varlistentry><term><command>Password</command></term>
1648 The authentication password. Use '\xDD' for unprintable characters.
1649 An hexadecimal password must be entered as a sequence of '\xDD' characters.
1650 For example the hex password 010203040506 must be entered as '\x01\x02\x03\x04\x05\x06'.
1651 The '\' character must be treated as an unprintable character, i.e.
1652 it must be entered as '\x5C' or '\x5c'.
1656 <varlistentry><term><command>Privacy protocol</command></term>
1659 Which encryption algorithm to use (either "DES" or "AES").
1663 <varlistentry><term><command>Privacy password</command></term>
1666 The privacy password. Use '\xDD' for unprintable characters.
1667 An hexadecimal password must be entered as a sequence of '\xDD' characters.
1668 For example the hex password 010203040506 must be entered as '\x01\x02\x03\x04\x05\x06'.
1669 The '\' character must be treated as an unprintable character, i.e.
1670 it must be entered as '\x5C' or '\x5c'.
1677 <section id="ChK12ProtocolsSection"><title>Tektronix K12xx/15 RF5 protocols Table</title>
1679 The Tektronix K12xx/15 rf5 file format uses helper files (*.stk) to identify the various protocols that are
1680 used by a certain interface. Wireshark doesn't read these stk files, it uses a table that helps it identify
1681 which lowest layer protocol to use.
1684 Stk file to protocol matching is handled by an <xref linkend="ChUserTable"/> with the following fields.
1687 <varlistentry><term><command>Match string</command></term>
1690 A partial match for an stk filename, the first match wins, so if you have a specific case and a
1691 general one the specific one must appear first in the list.
1695 <varlistentry><term><command>Protocol</command></term>
1698 This is the name of the encapsulating protocol (the lowest layer in the packet data) it can be either
1699 just the name of the protocol (e.g. mtp2, eth_witoutfcs, sscf-nni ) or the name of the encapsulation
1700 protocol and the "application" protocol over it separated by a colon (e.g sscop:sscf-nni, sscop:alcap, sscop:nbap, ...)
1707 <section id="ChUserDLTsSection"><title>User DLTs protocol table</title>
1709 When a pcap file uses one of the user DLTs (147 to 162) wireshark uses this table to know which protocol(s) to use for each user DLT.
1712 This table is handled by an <xref linkend="ChUserTable"/> with the following fields.
1715 <varlistentry><term><command>DLT</command></term>
1718 One of the user dlts.
1722 <varlistentry><term><command>Payload protocol</command></term>
1725 This is the name of the payload protocol (the lowest layer in the packet data). (e.g. "eth" for ethernet, "ip" for IPv4)
1729 <varlistentry><term><command>Header size</command></term>
1732 If there is a header protocol (before the payload protocol) this tells which size this header is. A value of 0 disables the header protocol.
1736 <varlistentry><term><command>Header protocol</command></term>
1739 The name of the header protocol to be used (uses "data" as default).
1743 <varlistentry><term><command>Trailer size</command></term>
1746 If there is a trailer protocol (after the payload protocol) this tells which size this trailer is. A value of 0 disables the trailer protocol.
1750 <varlistentry><term><command>Trailer protocol</command></term>
1753 The name of the trailer protocol to be used (uses "data" as default).
1762 <!-- End of WSUG Chapter Customizing -->